easy_install не будет подключаться через прокси

26611
robots.jpg

Я использую Ubuntu Server 10.04 64-bit под VirtualBox, и кажется, что все, кроме easy_install и pip, могут подключаться к Интернету. Я установил и экспортировал переменную среды http_proxy, а также настроил прокси-адрес в любом другом месте, которое мне известно. Все же easy_install всегда возвращает «Сеть недоступна»:

:~$ 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 ищет информацию о соединении в другом месте или что-то очевидное мне не хватает?

18

3 ответа на вопрос

31
Strubbl

Это проблема с 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 и сохранить «шаг получения root» с помощью:

$ sudo -E easy_install virtualenv 
Thank you. Figures that I forget about things like scope when I'm not programming. I must have set up `http_proxy` in /etc/environment on the other installations where I had no problem. robots.jpg 13 лет назад 1
BRILLIANT. Ни один гид не имеет этого. Robert Grant 10 лет назад 0
7
Andrew

Вместо того, чтобы открывать корневую оболочку, sudo -iвы можете запустить команду

$ sudo -E easy_install virtualenv 

-EКоммутатор сохраняет текущую среду.

Другой недостаток заключается в том, что некоторые sudo-подобные замены (например, dzdo) отказываются сохранять эти переменные, даже если вы скажете им об этом. Sam Brightman 13 лет назад 0
1
Kyle O'Donnell

I had to add

# export http_proxy=x.x.x.x:YY # export https_proxy=x.x.x.x:YY # export ftp_proxy=x.x.x.x:YY 

Похожие вопросы