2013-01-11 30 views
3

我有一臺服務器,我想使用Python,位於公司防火牆後面。我不想惹它,我唯一能做的就是爲特定的URL /域設置一個防火牆例外。我應該授權哪些url在防火牆後面使用pip?

我還想使用pip或easy_install來訪問位於PYPI上的軟件包。因此,除了* .pypi.python.org之外,您是否知道應該在防火牆的例外規則中列出哪個URL?

+0

你是什麼意思'除* .pypi.python.org'?這是PyPI網址。 – katrielalex

+3

@katrielalex:PyPI是* metadata *索引,雖然大部分軟件包也已經上傳到PyPI,但這是*可選*。其他軟件包的負載從他們自己的域中提供。 'pip'將查找下載位置並聯系正確的位置以獲取它。這可以通過互聯網上的*任何地方*。 –

+0

@MartijnPieters是的,我同意。我將OP的聲明'位於PYPI'上作爲'PyPI'託管,因爲顯然沒有辦法添加防火牆規則「允許PyPI鏈接任何東西」。 – katrielalex

回答

2

您需要打開防火牆到任何需要安裝的軟件包的下載位置。

請注意,下載位置不一定在PyPI上。 Python包索引是一種元數據服務,恰好也爲索引包提供存儲。因此,並非所有在PyPI上編制索引的軟件包實際上都是從PyPI下載的,下載位置可能在互聯網上的任何地方。

我想說你首先打開pypi.python.org,然後當單獨的包安裝失敗時,檢查他們的PyPI頁面並添加這些列出的下載位置。

+0

感謝您的回答。你認爲一個好的選擇是'export PIP_DOWNLOAD_CACHE = $ HOME/.pip_download_cache',在可以訪問互聯網的機器上創建一個虛擬環境,執行'pip install -r requirements.txt',然後複製下載緩存到可以訪問pypi的隔離機器(這樣我可以檢查是否有新版本,如果新的requirements.txt授權更新的包版本? –

+1

@ Marc-OlivierTiteux:這可以工作,是的另一種方法是設置創建一個[PyPI鏡像](http://pypi.python.org/pypi/collective.eggproxy)(充當請求包的緩存代理) –

+0

好的,我會用這個解決這個問題,再次感謝提示! –

相關問題