easy_install no se conectará a través del proxy

19

Estoy ejecutando Ubuntu Server 10.04 de 64 bits en VirtualBox, y parece que todo excepto easy_install y pip pueden conectarse a Internet. Establecí y exporté la variable de entorno http_proxy, y también configuré la dirección proxy en cualquier otra ubicación que conozco. Sin embargo, easy_install siempre devuelve "La red es inalcanzable":

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

Incluso puedo conectarme al sitio desde 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'

He tenido el mismo resultado con paquetes que no sean virtualenv. ¿Easy_install está buscando información de conexión en otro lugar o hay algo obvio que me falta?

robots.jpg
fuente

Respuestas:

31

Es un problema con sudo. Si usa sudo, la variable $http_proxyes desconocida en este contexto.

sudo -iabre un shell de raíz. Allí puede configurar la $http_proxyvariable nuevamente y luego easy_install funciona: no tiene que usar sudo porque ya es superusuario.

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

O puede tener su entorno real en contexto sudo y guardar el "paso raíz" a través de:

$ sudo -E easy_install virtualenv
Strubbl
fuente
1
Gracias. Cifras que me olvido de cosas como el alcance cuando no estoy programando. Debo haber configurado http_proxyen / etc / environment en las otras instalaciones donde no tuve ningún problema.
robots.jpg
BRILLANTE. Ningún guía tiene esto.
Robert Grant
7

En lugar de abrir un shell raíz con sudo -iusted, puede ejecutar el comando

$ sudo -E easy_install virtualenv

El -Einterruptor conserva su entorno actual.

Andrés
fuente
Otro problema es que algunos reemplazos tipo sudo (por ejemplo, dzdo) se niegan a preservar estas variables incluso si se lo indica.
Sam Brightman
1

Tuve que agregar

# 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
fuente