2015-02-09 54 views
6

PyPI可能不可靠。我有一個不幸的數量的Travis-CI構建失敗,因爲點沒有安裝我的一個要求(lxml是最臭名昭着的罪犯)。Canonical替換爲--use-mirrors

各種在線資源推薦--use-mirrors標誌,它已經解決了這個問題,我迄今。然而,--use-mirrorsdeprecated有很多原因。

不幸的是,在鏈接中提到的首要原因去除標誌之一是,新的CDN支持PyPI中不應該有同樣的問題。它的確如此。我的編譯版本仍然存在問題,除非使用--use-mirrors,否則我仍然無法可靠地使用pip安裝軟件包。

對於2014-01-01版本1.5的release notes推薦使用-i,-index-url--extra-index-url之一的標誌。除了......我們遇到了一些與--use-mirrors相同的問題,即這些鏡像不一定是可信的,這很好。

PyPI mirrors list實際上已經被刪除,留給我們一些unofficial mirrors。因此,我留下了一個選擇:繼續使用--use-mirrors,並希望上述問題之一在被刪除之前已經修復,或者選擇一面鏡子並希望它可以正常工作並且值得信賴。

是否有廣泛接受和值得信賴的鏡子?還是被廣泛接受和信任的替代方案?基本上,我應該如何處理這個問題?

+1

請注意,如果您可以使用基於容器的基礎架構,則travis支持[緩存](http://docs.travis-ci.com/user/caching/)。 – o11c 2015-07-14 00:50:27

回答

2

坦率地說,我從來沒有遇到這個問題,你所描述 - 所以我不知道該怎麼做,以解決市民的PyPI指數的問題。

但是,作爲一般的做法,我可以推薦以下這就是我們在部署的時候(就像我們部署做系統不能訪問互聯網)使用方法:

  1. 創建一個本地的PyPI鏡,併發布你的包在那裏。你可以用很多方式來做到這一點。 basket的簡單方法,或者你可以做我們所做的,並創建自己的pypi鏡像(請參閱:How to roll my own pypi?的一些建議)。

  2. 使用wheel。這是我們正在遷移到的,因爲安裝過程非常簡單,並且不需要依賴其他服務器。

我知道有一個全球性的PyPI指數是一個極大的方便,但作爲部署構建鏈我會用它作爲備份的一部分;一個是我不控制的網絡(因此它可能無法訪問或不可靠);更重要的是我的系統在構建過程中可能不需要訪問互聯網。