2014-01-30 299 views
13

我試圖從企業防火牆後面使用pip,沒有任何運氣。Pip不在防火牆後面工作

我已經設置了http_proxyhttps_proxy環境變量。 wget工作,但不是點子。

我想這...

sudo -E pip install virtualenv 

與這些代理...

export http_proxy=myproxyname.mydomain.com:8080 
export https_proxy=myproxyname.mydomain.com:8080 

...並且有很長的堆棧跟蹤,與此

/requests/packages/urllib3/poolmanager.py", line 214, in __init__ 
'Not supported proxy scheme %s' % self.proxy.scheme 
AssertionError: Not supported proxy scheme None 

我結束看着poolmanager.py源碼。它看起來像要求代理變量以一個方案開始。所以,我用下面的代理再次嘗試......

export http_proxy=http://myproxyname.mydomain.com:8080 
export https_proxy=https://myproxyname.mydomain.com:8080 (also tried this with http://) 

...我收到以下錯誤

Downloading/unpacking virtualenv 
    Cannot fetch index base URL https://pypi.python.org/simple/ 
    Could not find any downloads that satisfy the requirement virtualenv 
Cleaning up... 
No distributions at all found for virtualenv 
Storing debug log for failure in /root/.pip/pip.log 

這是相同的錯誤,當我沒有代理,在我得到的,但是當代理被設置時,我可以更快地獲得它。

當我嘗試了wget ...

wget --no-check-certificate https://pypi.python.org/simple/ 

它正常工作,所以我覺得自己的代理似乎好了,除非我嘗試將它們與點子。使用--proxy選項而不是envvars沒有幫助。相同的結果。

任何想法?

感謝, 豆

+0

嘗試-v標誌以點滴來獲得更多的產出。例如 'sudo -E pip -v install virtualenv' –

回答

1

pip有一個選項可以設置代理,所以下面應該爲你工作:

sudo -E pip install --proxy="myproxyname.mydomain.com:8080" virtualenv 
+1

謝謝...不幸的是,這也沒有工作。它給出了與設置環境變量相同的結果,包括如果我沒有使用http開始代理的'no scheme'問題。 我要編輯問題以表明我嘗試過。 –

0

嘗試增加的 「http://」 代理主機名前:

sudo -E pip install --proxy="http://myproxyname.mydomain.com:8080" virtualenv
3

我必須在Windows中設置所有這些才能使其工作。

set http_proxy=http://proxy.corp.com:8083 
set https_proxy=http://proxy.corp.com:8083 
set all_proxy=http://proxy.corp.com:8083 
set no_proxy=localhost,.corp.com 

set HTTP_PROXY=http://proxy.corp.com:8083 
set HTTPS_PROXY=http://proxy.corp.com:8083 
set ALL_PROXY=http://proxy.corp.com:8083 
set NO_PROXY=localhost,.corpcom 

set PATH=c:\python27\scripts;c:\python27\;%PATH% 

,請與您的HTTP代理服務器取代proxy.corp.com:8083

之後,我使用PIP 安裝numpy的

+0

謝謝你回答達米安。不幸的是,我現在不再工作,所以我甚至無法測試上面的工作是否在他們的防火牆上! 但是我已經提出了你的答案,因爲它是我不知道的最徹底和提及的變量,並可能幫助其他人。 –

+0

是的,我在工作中使用了它。只是想幫助以防止任何人像我一樣卡住! – Damian

+0

+1這個答案適用於我,因爲a)我的代理設置缺少http/https前綴和b)也許pip使用其中一個大寫的env變量? – ropata

9

使用--trusted主機參數。

我想出瞭如何使用--trusted-host參數使其與我的公司防火牆一起工作。

我第一次嘗試是這樣的:

pip install matplotlib 

和失敗的文字是這樣的:

無法獲取URL https://pypi.python.org/simple/matplotlib/:有 是確認SSL證書有問題:SSL: CERTIFICATE_VERIFY_FAILED]證書驗證失敗(_ssl.c:645) - 跳過

於是我嘗試這樣做哪些工作:

pip3.5 install matplotlib --trusted-host pypi.python.org

+0

我工作了一年多的時間,一直在防火牆後面工作。驚人! – Anekdotin