Python错误:未指定主机

时间:2017-05-25 06:38:52

标签: python host

我刚刚写了一个简单的python演示,遇到了一个令人困惑的问题。

import requests

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

我知道正确的结果是返回Response [200]。但在我的WIN10 x64中,它会返回以下错误,我想我的计算机可能会出现一些问题。

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]

请帮助我!

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在Windows 10 64-Bit上使用相同的python版本测试了它,它对我有用。

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

ipconfig /flushdns

答案 2 :(得分: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

     

(您也可以直接搜索ProxyEnable)

删除ProxyEnable 创建一个新的ProxyEnable表单(REG_SZ 0)(REG_DWORD 0x00000000(0))

参见下面的图片,我的电脑语言是中文,但ProxyEnable的位置是相同的。

  

create a new ProxyEnable

     

right value for ProxyEnable