easy_install non si connetterà tramite proxy


19

Sto eseguendo Ubuntu Server 10.04 a 64 bit in VirtualBox e sembra che tutto tranne easy_install e pip possano connettersi a Internet. Ho impostato ed esportato la variabile di ambiente http_proxy e impostato l'indirizzo proxy in ogni altra posizione di cui sono a conoscenza. Tuttavia easy_install restituisce sempre "La rete non è raggiungibile":

:~$ 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 persino collegarmi al sito da 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'

Ho avuto lo stesso risultato con pacchetti diversi da virtualenv. Easy_install sta cercando altrove informazioni sulla connessione o mi manca qualcosa di ovvio?

Risposte:


31

È un problema con sudo. Se si utilizza sudo, la variabile $http_proxyè sconosciuta in questo contesto.

sudo -iapre una shell di root. Lì puoi impostare $http_proxynuovamente la variabile e poi easy_install funziona - non devi usare sudo perché sei già un superutente.

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

Oppure puoi avere il tuo ambiente reale nel contesto sudo e salvare il "get root step" tramite:

$ sudo -E easy_install virtualenv

1
Grazie. Cifre che dimentico di cose come l'ambito quando non sto programmando. Devo aver impostato http_proxyin / etc / environment sulle altre installazioni in cui non ho avuto problemi.
robots.jpg

BRILLANTE. Nessuna guida ha questo.
Robert Grant,

7

Invece di aprire una shell di root con sudo -ite puoi eseguire il comando

$ sudo -E easy_install virtualenv

Lo -Eswitch preserva il tuo ambiente attuale.


Un altro problema è che alcune sostituzioni sudo-like (ad es. Dzdo) si rifiutano di preservare queste variabili anche se glielo dici.
Sam Brightman,

1

Ho dovuto aggiungere

# export http_proxy=x.x.x.x:YY
# export https_proxy=x.x.x.x:YY
# export ftp_proxy=x.x.x.x:YY
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.