easy_install ne se connectera pas via le proxy

19

J'utilise Ubuntu Server 10.04 64 bits sous VirtualBox, et il semble que tout sauf easy_install et pip peut se connecter à Internet. J'ai défini et exporté la variable d'environnement http_proxy, et j'ai également configuré l'adresse proxy dans tous les autres emplacements que je connais. Pourtant, easy_install renvoie toujours "Le réseau est inaccessible":

:~$ 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
:~$

Je peux même me connecter au site depuis 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'

J'ai eu le même résultat avec des packages autres que virtualenv. Easy_install cherche-t-il ailleurs des informations de connexion, ou y a-t-il quelque chose d'évident qui me manque?

robots.jpg
la source

Réponses:

31

C'est un problème avec sudo. Si vous utilisez sudo, la variable $http_proxyest inconnue dans ce contexte.

sudo -iouvre un shell racine. Là, vous pouvez $http_proxyà nouveau définir la variable, puis easy_install fonctionne - vous n'avez pas besoin d'utiliser sudo car vous êtes déjà superutilisateur.

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

Ou vous pouvez avoir votre environnement réel dans le contexte sudo et enregistrer "get root step" via:

$ sudo -E easy_install virtualenv
Strubbl
la source
1
Je vous remercie. Des chiffres que j'oublie sur des choses comme la portée quand je ne programme pas. Je dois avoir installé http_proxydans / etc / environment sur les autres installations où je n'ai eu aucun problème.
robots.jpg
BRILLANT. Aucun guide ne l'a.
Robert Grant
7

Plutôt que d'ouvrir un shell root avec sudo -ivous, vous pouvez exécuter la commande

$ sudo -E easy_install virtualenv

Le -Ecommutateur préserve votre environnement actuel.

Andrew
la source
Un autre problème est que certains remplacements de type sudo (par exemple dzdo) refusent de conserver ces variables même si vous le leur dites.
Sam Brightman
1

Je devais ajouter

# export http_proxy=x.x.x.x:YY
# export https_proxy=x.x.x.x:YY
# export ftp_proxy=x.x.x.x:YY
Kyle O'Donnell
la source