2013-09-29 40 views
36

我正在嘗試使用python包管理器pip來安裝一個軟件包,它是來自Internet的依賴關係。然而,我在我大學的代理背後,已經設置了http_proxy環境變量。但是,當我試圖安裝一個軟件包這樣的:如何讓pip在代理服務器後面工作

pip install TwitterApi 

我在日誌文件中得到這個錯誤:

Getting page http://pypi.python.org/simple/TwitterApi 
Could not fetch URL http://pypi.python.org/simple/TwitterApi: <urlopen error [Errno 111] Connection refused> 
Will skip URL http://pypi.python.org/simple/TwitterApi when looking for download links for TwitterApi 
Getting page http://pypi.python.org/simple/ 
Could not fetch URL http://pypi.python.org/simple/: <urlopen error [Errno 111] Connection refused> 

我甚至嘗試明確設置我的代理變量是這樣的:

pip install --proxy http://user:[email protected]:port TwitterApi 

但我仍然得到同樣的錯誤。如何讓pip在代理服務器後工作。

+1

您可以瀏覽您的瀏覽器pypi.python.org命令試試? – nachshon

+0

是的。我可以瀏覽互聯網沒有問題。我還在wgetrc文件中爲wget配置了代理,並且'wget'似乎正在工作。即使'git'正在使用一些代理配置。但'pip'一直在拋出同樣的錯誤。 – Annihilator8080

+0

看到類似問題的答案。 http://stackoverflow.com/questions/11726881/how-to-set-an-http-proxy-in-python-2-7 – mordechai

回答

55

畫中畫的代理參數,根據pip --help,形式scheme://[user:[email protected]]proxy.server:port

你應該使用下列內容:

pip install --proxy http://user:[email protected]:port TwitterApi 

此外,HTTP_PROXY的環境變量應該得到尊重。

注意,在早期版本(不能跟蹤代碼,遺憾的變化,但文檔進行了更新here),你不得不離開scheme://部分出來爲它工作,即pip install --proxy user:[email protected]:port

+1

哪裏有區別? – svvac

+6

其實你必須指定(協議是必需的): 'pip install --proxy http:// user:password @ proxyserver:port ' – Stanislav

+0

在我的情況下,我必須指定域名,像這樣:pip install - 代理域\用戶:密碼@代理服務器:端口 cag

17

至少對於pip 1.3.1,它承認http_proxy和https_proxy環境變量。請確保您定義了兩者,因爲它將使用https訪問PYPI索引。

export https_proxy="http://<proxy.server>:<port>" 
pip install TwitterApi 
+0

這沒有' t在CentOS上工作 –

+0

在終端上下文中設置了https_proxy變量之後,這個工作適用於Windows 7中的git-bash命令行。 – MichaelHuelsen

10

舊線,我知道,但是爲了將來的參考,--proxy選項現在用 「=」

例通過:

$ sudo pip install --proxy=http://yourproxy:yourport package_name 
1

至少PIP3還沒有工作「=」,然而,不是 「http」 你可能需要 「https」 開頭

最後的命令,這爲我工作:

sudo pip3 install --proxy https://{proxy}:{port} {BINARY} 
0

如果您使用Windows,則可以嘗試在Internet Explorer - >選項 - >連接 - > LAN設置 - >代理服務器中配置代理。它會影響全球的系統。

+0

雖然呢?它不適合我 – greg121

2

首先嚐試使用以下命令

SET HTTPS_PROXY=http://proxy.***.com:PORT# 

設置代理,然後使用

pip install ModuleName 
+0

這對我來說沒有其他解決方案。使用Windows 7專業版 – Plamen

相關問題