easy_install stellt keine Verbindung über Proxy her

19

Ich verwende Ubuntu Server 10.04 64-Bit unter VirtualBox und es scheint, dass alles außer easy_install und pip eine Verbindung zum Internet herstellen kann. Ich habe die Umgebungsvariable http_proxy festgelegt und exportiert sowie die Proxy-Adresse an jedem anderen Speicherort eingerichtet, der mir bekannt ist. Easy_install gibt jedoch immer "Netzwerk ist nicht erreichbar" zurück:

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

Ich kann mich sogar aus Python heraus mit der Site verbinden:

>>> 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'

Ich hatte das gleiche Ergebnis mit anderen Paketen als virtualenv. Sucht easy_install an einer anderen Stelle nach Verbindungsinformationen oder fehlt mir offensichtlich etwas?

robots.jpg
quelle

Antworten:

31

Es ist ein Problem mit sudo. Wenn Sie verwenden sudo, ist die Variable $http_proxyin diesem Kontext unbekannt.

sudo -iöffnet eine Root-Shell. Dort können Sie die $http_proxyVariable erneut setzen und dann funktioniert easy_install - Sie müssen sudo nicht verwenden, da Sie bereits Superuser sind.

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

Oder Sie können Ihre aktuelle Umgebung im sudo-Kontext haben und den "get root step" speichern über:

$ sudo -E easy_install virtualenv
Strubbl
quelle
1
Vielen Dank. Zahlen, die ich über Dinge wie Umfang vergesse, wenn ich nicht programmiere. Ich muss http_proxyin / etc / environment andere Installationen eingerichtet haben, bei denen ich keine Probleme hatte.
robots.jpg
BRILLANT. Keine Guides haben das.
Robert Grant
7

Anstatt eine Root-Shell mit zu öffnen, sudo -ikönnen Sie den Befehl ausführen

$ sudo -E easy_install virtualenv

Der -ESwitch erhält Ihre aktuelle Umgebung.

Andrew
quelle
Ein weiteres Problem ist, dass einige sudo-artige Ersetzungen (z. B. dzdo) es ablehnen, diese Variablen beizubehalten, selbst wenn Sie dies anweisen.
Sam Brightman
1

Ich musste hinzufügen

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