无法将python配置为代理

时间:2013-06-05 09:23:31

标签: python-2.7

以下与我的问题相关的帖子都没有能够为我提供解决方案。所以我发布了一个新的帖子。

我通过我大学的认证代理连接到互联网。所以在浏览器中,我提供了我的用户名密码。但是我无法在python中下载数据。

我在python 2.7中输入以下4行来下载数据。我已经成功安装了pandas和datetime库;所以下面的前两行没有问题。

from pandas.io.data import DataReader
from datetime import datetime
goog = DataReader("GOOG",  "yahoo", datetime(2000,1,1), datetime(2012,1,1))
print goog["Adj Close"]

我得到的错误如下:

Traceback (most recent call last):
File "C:\Program Files\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 3, in  <module>
pass
File "C:\Python27\Lib\site-packages\pandas\io\data.py", line 53, in DataReader
return get_data_yahoo(name=name, start=start, end=end)
File "C:\Python27\Lib\site-packages\pandas\io\data.py", line 134, in get_data_yahoo
lines = urllib.urlopen(url).read()
File "C:\Python27\Lib\urllib.py", line 86, in urlopen
return opener.open(url)
File "C:\Python27\Lib\urllib.py", line 211, in open
return getattr(self, name)(url)
File "C:\Python27\Lib\urllib.py", line 344, in open_http
h.endheaders(data)
File "C:\Python27\Lib\httplib.py", line 954, in endheaders
self._send_output(message_body)
File "C:\Python27\Lib\httplib.py", line 814, in _send_output
self.send(msg)
File "C:\Python27\Lib\httplib.py", line 776, in send
self.connect()
File "C:\Python27\Lib\httplib.py", line 757, in connect
self.timeout, self.source_address)
File "C:\Python27\Lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
IOError: [Errno socket error] [Errno 11004] getaddrinfo failed

任何线索??

1 个答案:

答案 0 :(得分:5)

对于Windows 7:

  1. 右键点击Computer,然后选择Properties
  2. 在左侧,选择Advanced system settings
  3. 点击Advanced标签,然后点击Environment Variables
  4. 点击New..
  5. 下的User Variables
  6. Variable name中输入HTTP_PROXY,在Variable value中输入http://username:password@proxy.com:port(其中proxy.com是您的代理的主机名或IP地址,并{{ 1}}是它的端口 - 从Internet Explorer中获取它)
  7. 单击“确定”,然后单击“确定”,再单击“确定”关闭所有对话框。
  8. 现在,当您打开 new 命令终端时,Python应该能够访问Internet;任何IDE(再次启动)都应允许Python访问Internet。

    对于Windows XP,当您右键单击port并选择My Computer时,您将会在同一个对话框中点击Properties标签。

    Python会在尝试连接到Internet之前读取AdvancedHTTP_PROXY enivronment变量(如果已设置)。如果您使用代理并且缺少这些变量,则任何Python应用程序(除非特别豁免)都无法访问Internet。因此,您将无法以HTTPS_PROXY为例 - 但是一旦设置了这两个变量,Python将使用代理,然后将连接到Internet。