以下与我的问题相关的帖子都没有能够为我提供解决方案。所以我发布了一个新的帖子。
我通过我大学的认证代理连接到互联网。所以在浏览器中,我提供了我的用户名密码。但是我无法在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
任何线索??
答案 0 :(得分:5)
对于Windows 7:
Computer
,然后选择Properties
Advanced system settings
Advanced
标签,然后点击Environment Variables
New..
User Variables
Variable name
中输入HTTP_PROXY
,在Variable value
中输入http://username:password@proxy.com:port
(其中proxy.com
是您的代理的主机名或IP地址,并{{ 1}}是它的端口 - 从Internet Explorer中获取它)现在,当您打开 new 命令终端时,Python应该能够访问Internet;任何IDE(再次启动)都应允许Python访问Internet。
对于Windows XP,当您右键单击port
并选择My Computer
时,您将会在同一个对话框中点击Properties
标签。
Python会在尝试连接到Internet之前读取Advanced
和HTTP_PROXY
enivronment变量(如果已设置)。如果您使用代理并且缺少这些变量,则任何Python应用程序(除非特别豁免)都无法访问Internet。因此,您将无法以HTTPS_PROXY
为例 - 但是一旦设置了这两个变量,Python将使用代理,然后将连接到Internet。