web-dev-qa-db-ja.com

ファイアウォールの背後でピップが機能しない

私は企業のファイアウォールの背後からpipを使用しようとしていますが、運がありません。

http_proxyおよびhttps_proxy環境変数を設定しました。 wgetは動作しますが、pipは動作しません。

私はこれを試しました...

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/

それはうまく機能するので、pipで試していない限り、プロキシ自体は問題ないと思われます。

Envvarsの代わりに--proxyオプションを使用しても役に立ちませんでした。同じ結果。

何か案は?

ありがとう、Bean

18
Bean Taxi

--trusted-Host引数を使用します。

--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

15
user3398996

これは私のために働いた

export HTTP_PROXY=http://myusr:[email protected]:8080
export HTTPS_PROXY=https://myusr:[email protected]:8080
Sudo -E pip3 install --proxy http://myusr:[email protected]:8080 virtualenv
7
Joram

これを機能させるには、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,.corp.com

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

proxy.corp.com:808をhttpプロキシサーバーに置き換えてください。

その後、pip install numpyを使用します

[最後の ".corp.com"にはピリオドがありませんでした(修正されました)。..ちなみに、企業のファイアウォールの後ろから大量の髪を引っ張った後、このソリューションが唯一有効なソリューションでした!]

5
Damian

pipにはプロキシを設定するオプションがあるため、次のように機能します。

Sudo -E pip install --proxy="myproxyname.mydomain.com:8080" virtualenv
3
Odi

これはプロキシの背後で動作しています

Sudo -E pip --proxy username:password @ http:// IP:port install

0
Sasanka

プロキシホスト名の前に「http://」を追加してみてください。

Sudo -E pip install --proxy = "http://myproxyname.mydomain.com:8080" virtualenv
0
Roberto