3

以下与我的问题相关的早期帖子都无法为我提供解决方案。所以我在一个新线程中发布。

我通过我大学中经过身份验证的代理连接到互联网。所以在浏览器中,我输入我的用户名密码。但是我无法在 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

有什么线索吗??

4

1 回答 1

5

对于 Windows 7:

  1. 右键单击Computer,然后选择Properties
  2. 在左侧,选择Advanced system settings
  3. 单击Advanced选项卡,然后单击Environment Variables
  4. 点击New..下方User Variables
  5. In Variable name, typeHTTP_PROXY和 in Variable value, type http://username:password@proxy.com:portproxy.com代理的主机名或 IP 地址在哪里,并且port是它的端口 - 从 Internet Explorer 中获取)
  6. 单击确定,然后单击确定,然后再次单击确定以关闭所有对话框。

现在,当你打开一个的命令终端时,Python 应该可以上网了;和任何 IDE(再次启动)都应该允许 Python 访问 Internet。

对于 Windows XP,当您右键单击My Computer并选择Properties时,您将到达单击选项卡的相同对话框Advanced

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

于 2013-06-05T09:34:24.227 回答