easy_install将无法通过代理连接


19

我正在VirtualBox下运行64位的Ubuntu Server 10.04,并且似乎除了 easy_install和pip 之外的所有东西都可以连接到Internet。我已经设置并导出了http_proxy环境变量,并且还在我知道的每个其他位置都设置了代理地址。然而easy_install总是返回“网络不可达”:

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

我什至可以从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'

除以外的软件包,我得到了相同的结果virtualenv。easy_install是在其他地方寻找连接信息,还是我显然缺少了什么?

Answers:


31

这是一个问题sudo。如果使用sudo,则变量$http_proxy在此上下文中未知。

sudo -i打开根外壳。在那里您可以$http_proxy再次设置变量,然后easy_install可以工作-不必使用sudo,因为您已经是超级用户。

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

或者,您可以将实际环境置于sudo上下文中,并通过以下方式保存“获取根目录步骤”:

$ sudo -E easy_install virtualenv

1
谢谢。当我不编程时,我会忘记诸如范围之类的数字。我必须http_proxy在没有问题的其他安装中的/ etc / environment中进行设置。
robots.jpg 2011年

辉煌。没有向导有这个。
罗伯特·格兰特

7

sudo -i您可以运行以下命令,而不用打开根shell:

$ sudo -E easy_install virtualenv

-E交换机保留当前的环境。


另一个陷阱是,即使您告诉它们,某些类似于sudo的替换项(例如dzdo)也拒绝保留这些变量。
山姆·布莱曼

1

我必须添加

# export http_proxy=x.x.x.x:YY
# export https_proxy=x.x.x.x:YY
# export ftp_proxy=x.x.x.x:YY
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.