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?

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

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.