easy_install не зв’яжеться через проксі


19

Я запускаю 64-розрядний Ubuntu Server 10.04 під 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 шукає іншу інформацію про з'єднання, або щось явне мені не вистачає?

Відповіді:


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 і зберегти "отримати корінь крок" за допомогою:

$ sudo -E easy_install virtualenv

1
Дякую. Цифри, які я забуваю про такі речі, як сфера застосування, коли я не програмую. Я повинен був налаштувати http_proxyв / etc / environment на інших установках, де у мене не було проблем.
robots.jpg

БРІЛІАНТ. Жодних путівників цього немає.
Роберт Грант

7

Замість того, щоб відкривати кореневу оболонку, sudo -iви можете запустити команду

$ sudo -E easy_install virtualenv

-EКомутатор зберігає поточну середу.


Інша проблема полягає в тому, що деякі заміни судо (наприклад, dzdo) відмовляються зберігати ці змінні, навіть якщо ви їм цього скажете.
Сем Брайтман

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.