O easy_install não se conectará através do proxy


19

Estou executando o Ubuntu Server 10.04 de 64 bits no VirtualBox, e parece que tudo, exceto easy_install e pip, pode se conectar à Internet. Eu configurei e exportei a variável de ambiente http_proxy e também configurei o endereço de proxy em qualquer outro local que eu conheça. No entanto, o easy_install sempre retorna "Rede inacessível":

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

Posso até conectar-me ao site no 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'

Eu tive o mesmo resultado com pacotes diferentes de virtualenv. O easy_install está procurando em outro lugar informações de conexão ou há algo óbvio que estou faltando?

Respostas:


31

É um problema com sudo. Se você usar sudo, a variável $http_proxyé desconhecida neste contexto.

sudo -iabre um shell raiz. Lá você pode definir a $http_proxyvariável novamente e o easy_install funciona - você não precisa usar o sudo porque já é superusuário.

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

Ou você pode ter seu ambiente atual no contexto sudo e salvar a "etapa raiz da obtenção" via:

$ sudo -E easy_install virtualenv

11
Obrigado. Números que esqueço de coisas como escopo quando não estou programando. Eu devo ter configurado http_proxyno / etc / environment nas outras instalações em que não tive nenhum problema.
robots.jpg

BRILHANTE. Nenhum guia tem isso.
Robert Grant

7

Em vez de abrir um shell raiz, sudo -ivocê pode executar o comando

$ sudo -E easy_install virtualenv

A -Eopção preserva seu ambiente atual.


Outra dica é que algumas substituições do tipo sudo (por exemplo, dzdo) se recusam a preservar essas variáveis, mesmo que você as solicite.
Sam Brightman

1

Eu tive que adicionar

# export http_proxy=x.x.x.x:YY
# export https_proxy=x.x.x.x:YY
# export ftp_proxy=x.x.x.x:YY
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.