easy_installはプロキシ経由で接続しません


19

VirtualBoxでUbuntu Server 10.04 64ビットを実行していますが、easy_installとpip 以外はすべてインターネットに接続できるようです。http_proxy環境変数を設定およびエクスポートし、認識している他のすべての場所にプロキシアドレスも設定しました。しかし、easy_installは常に「Network is unreachable」を返します。

:~$ echo $http_proxy
http://192.168.1.25:80/

:~$ grep "http_proxy" /etc/bash.bashrc
export http_proxy=http://192.168.1.25:80/

:~$ grep "http_proxy" /etc/wgetrc
http_proxy = http://192.168.1.25:80/

:~$ ping pypi.python.org
PING pypi.python.org (82.94.164.168) 56(84) bytes of data.
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=1 ttl=53 time=114 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=2 ttl=53 time=113 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=3 ttl=53 time=113 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=4 ttl=53 time=113 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=5 ttl=53 time=114 ms
64 bytes from pypi.python.org (82.94.164.168): icmp_seq=6 ttl=53 time=113 ms
^C
--- pypi.python.org ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5006ms
rtt min/avg/max/mdev = 113.367/113.871/114.678/0.614 ms

:~$ sudo easy_install virtualenv
Searching for virtualenv
Reading http://pypi.python.org/simple/virtualenv/
Download error: [Errno 101] Network is unreachable -- Some packages may not be found!
Reading http://pypi.python.org/simple/virtualenv/
^Cinterrupted
:~$

Python内からサイトに接続することもできます。

>>> import urllib
>>> obj = urllib.urlopen('http://pypi.python.org/simple/virtualenv/')
>>> obj.readlines()[0]
'<html><head><title>Links for virtualenv</title></head><body><h1>Links for virtualenv</h1><a href="../../packages/source/v/virtualenv/virtualenv-1.5.1.tar.gz#md5=3daa1f449d5d2ee03099484cecb1c2b7">virtualenv-1.5.1.tar.gz</a><br/>\n'

以外のパッケージでも同じ結果が得られましたvirtualenv。easy_installはどこか他の場所で接続情報を探していますか?

回答:


31

の問題sudoです。を使用するsudo場合、変数$http_proxyはこのコンテキストでは不明です。

sudo -iルートシェルを開きます。そこで$http_proxy変数を再度設定すると、easy_installが機能します。すでにスーパーユーザーであるため、sudoを使用する必要はありません。

$ sudo -i
# export http_proxy=http://192.168.1.25:80
# easy_install virtualenv

または、実際の環境をsudoコンテキストで使用して、「get root step」を次の方法で保存できます。

$ sudo -E easy_install virtualenv

1
ありがとうございました。プログラミングをしていないときにスコープなどのことを忘れている数字。私はhttp_proxy問題がなかった他のインストールの/ etc / environmentでセットアップしなければなりません。
robots.jpg

鮮やかさ。これを持っているガイドはありません。
ロバートグラント14

7

ルートシェルを開くのではなくsudo -i、コマンドを実行できます

$ sudo -E easy_install virtualenv

-Eスイッチは、現在の環境を維持します。


別の落とし穴は、いくつかのsudoのような置換(dzdoなど)が、たとえそれらを指示したとしても、これらの変数の保存を拒否することです。
サムブライトマン

1

追加しなければならなかった

# export http_proxy=x.x.x.x:YY
# export https_proxy=x.x.x.x:YY
# export ftp_proxy=x.x.x.x:YY
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.