easy_install tidak akan terhubung melalui proxy

19

Saya menjalankan Ubuntu Server 10.04 64-bit di bawah VirtualBox, dan sepertinya semuanya kecuali easy_install dan pip dapat terhubung ke Internet. Saya telah menetapkan dan mengekspor variabel lingkungan http_proxy, dan juga mengatur alamat proxy di setiap lokasi lain yang saya ketahui. Namun easy_install selalu mengembalikan "Jaringan tidak dapat dijangkau":

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

Saya bahkan dapat terhubung ke situs dari dalam 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'

Saya memiliki hasil yang sama dengan paket selain virtualenv. Apakah easy_install mencari di tempat lain untuk informasi koneksi, atau ada sesuatu yang jelas saya hilang?

robots.jpg
sumber

Jawaban:

31

Ini masalah dengan sudo. Jika Anda menggunakan sudo, variabel $http_proxytidak dikenal dalam konteks ini.

sudo -imembuka shell root. Di sana Anda dapat mengatur $http_proxyvariabel lagi dan kemudian easy_install berfungsi - Anda tidak harus menggunakan sudo karena Anda sudah superuser.

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

Atau Anda dapat memiliki lingkungan Anda yang sebenarnya dalam konteks sudo dan menyimpan "get root step" via:

$ sudo -E easy_install virtualenv
Strubbl
sumber
1
Terima kasih. Angka yang saya lupa tentang hal-hal seperti ruang lingkup ketika saya tidak pemrograman Saya harus mengatur http_proxydi / etc / environment pada instalasi lain di mana saya tidak punya masalah.
robots.jpg
CEMERLANG. Tidak ada pemandu yang memiliki ini.
Robert Grant
7

Daripada membuka shell root dengan sudo -iAnda dapat menjalankan perintah

$ sudo -E easy_install virtualenv

The -Eberalih mempertahankan lingkungan Anda saat ini.

Andrew
sumber
Gotcha lain adalah bahwa beberapa penggantian seperti sudo (mis. Dzdo) menolak untuk mempertahankan variabel-variabel ini bahkan jika Anda menyuruhnya.
Sam Brightman
1

Saya harus menambahkan

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