2017-05-25 483 views
1

我刚写了一个简单的python演示,同时遇到了一个令人困惑的问题。Python错误:没有指定主机

import requests 

print(requests.get('http://www.sina.com.cn/')) 

我知道,正确的结果是返回响应[200]。但在我的WIN10操作系统,我们将返回下面的错误,我想也许会发生在我的电脑上的一些问题。

Traceback (most recent call last): 
    File "C:\Users\CJY\Desktop\Python_Demo\web.py", line 2, in <module> 
    print(requests.get('http://www.sina.com.cn/')) 
    File "D:\python3.6.1\lib\site-packages\requests\api.py", line 72, in get 
    return request('get', url, params=params, **kwargs) 
    File "D:\python3.6.1\lib\site-packages\requests\api.py", line 58, in request 
    return session.request(method=method, url=url, **kwargs) 
    File "D:\python3.6.1\lib\site-packages\requests\sessions.py", line 518, in request 
    resp = self.send(prep, **send_kwargs) 
    File "D:\python3.6.1\lib\site-packages\requests\sessions.py", line 639, in send 
    r = adapter.send(request, **kwargs) 
    File "D:\python3.6.1\lib\site-packages\requests\adapters.py", line 403, in send 
    conn = self.get_connection(request.url, proxies) 
    File "D:\python3.6.1\lib\site-packages\requests\adapters.py", line 302, in get_connection 
    conn = proxy_manager.connection_from_url(url) 
    File "D:\python3.6.1\lib\site-packages\requests\packages\urllib3\poolmanager.py", line 279, in connection_from_url 
    pool_kwargs=pool_kwargs) 
    File "D:\python3.6.1\lib\site-packages\requests\packages\urllib3\poolmanager.py", line 408, in connection_from_host 
    self.proxy.host, self.proxy.port, self.proxy.scheme, pool_kwargs=pool_kwargs) 
    File "D:\python3.6.1\lib\site-packages\requests\packages\urllib3\poolmanager.py", line 218, in connection_from_host 
    raise LocationValueError("No host specified.") 
requests.packages.urllib3.exceptions.LocationValueError: No host specified. 
[Finished in 0.2s] 

请帮帮我!

回答

0

这对我很有用。请确保你有互联网连接,你可以ping www.sina.com.cn

+0

Thanks.But我确定我的互联网没问题,只是像“urllib”或“requests”这样的所有python Internet程序包都无法连接到Internet。 – Chenguyue

0

刚刚测试过与Windows 10 64位相同的Python版本,它为我工作。

当在Windows中使用请求时,当本地dns缓存指向一个不正确的值时,我遇到了同样的错误。 如果您仍然没有运气,请尝试刷新该计算机上的本地dns缓存,然后在命令提示符下输入以下命令。

ipconfig /flushdns 
+0

谢谢,我很困惑,我创建了一个Linux VM(ubuntu16.04LTS在VMware Workstation12中),其中相同的代码运行良好。经过几次尝试,我重新安装我的System.All工程..... – Chenguyue

0

错误的位置:

Lib\urllib\request.py: 
proxyEnable = winreg.QueryValueEx(internetSettings, 'ProxyEnable')[0] 

如果proxyEnable是字符串,你会看到错误。原因是在您的注册表中,ProxyEnable设置为REG_SZ而不是REG_DWORD,因此请将其更改为一切正常。 打开注册表:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings \ ProxyEnable

(you can also directly search ProxyEnable)

删除ProxyEnable 创建一个新的ProxyEnable形式(REG_SZ 0)(REG_DWORD 00000000(0))

看到跟随图片,我的电脑语言是中国人,但ProxyEnable的位置是相同的。

create a new ProxyEnable

right value for ProxyEnable

相关问题