pipコマンドを使用してPythonパッケージをインストールすることも、ネットワークサブネットからURL http://pypi.python.org/に参加することもできませんが、同じコンピューターでIPとサブネットが異なる別のネットワークに接続すると、パッケージをインストールできます。 urlに参加します。pip installを実行すると、「インデックスベースURLhttp://pypi.python.org/simple/をフェッチできません」というエラーメッセージが表示されます。以前は機能していたので、これはIP禁止の問題の問題だと思います。これまでにこんな経験をした人はいますか?
1 に答える
解決?:
user@host:~$export HTTP_PROXY="$http_proxy"
簡単な答え: 小文字の $http_proxy は大文字の $HTTP_PROXY にする必要があります
長い答え: このエラーも発生していました。netstat -ant を確認すると、[pypi.python.org] ポート 80 に「SYN SENT」が表示されました。私の $http_proxy サーバーは明らかに他のトラフィックを別の IP とポート 8080 に送信します?! これはグローバルに設定されており、ユーザーが root であるか他のユーザーであるかは関係ないため、sudo -E ソリューションは再生されません。
大文字と小文字の区別は、pip バージョン 1.0 -> 1.3.1 の環境変数ではチェックされません。少なくとも、文字列 HTTP_PROXY の os.environ.get() 呼び出しではチェックされません。正確には「バグ」ではありませんが、Google Chrome などの小文字または大文字と小文字を区別しない他のインストール済みソフトウェアと競合します。
netstat が「not-your-proxies-IP」という IP のポート 80 へのトラフィックを示している場合、1 つの解決策は、小文字の環境変数「http_proxy」を探すように pip/download.py を変更することです。または、環境に $http_proxy と $HTTP_PROXY の両方が設定されていることを確認してください。
これが私のテストです:
user@host:~$ grep -R HTTP_PROXY /usr/local/lib/python2.7/dist-packages/pip/*
/usr/local/lib/python2.7/dist-packages/pip/download.py:
proxystr = os.environ.get('HTTP_PROXY', '')
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> proxystr = os.environ.get('HTTP_PROXY', '')
>>> proxystr
''
Now I change HTTP_PROXY to http_proxy and the same snippet of download.py returns the value of my proxy
>>> proxystr = os.environ.get('http_proxy', '')
>>> proxystr
'http://proxyserver.mydomain.com:8080/'