自上次更新Windows以来,我的python无法连接到Internet。
当我点什么时,错误就像
if host.startswith('['):
AttributeError: 'NoneType' object has no attribute 'startswith'
只是我不能在互联网上任何东西,无论如何。
然后我想我的系统可能出了问题,所以我试着检查“请求”是否正常工作。但主机错误就像
r = requests.get('http://www.baidu.com')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Program Files (x86)\Anaconda3\lib\site-packages\requests\api.py",
line 70, in get
return request('get', url, params=params, **kwargs)
File "D:\Program Files (x86)\Anaconda3\lib\site-packages\requests\api.py",
line 56, in request
return session.request(method=method, url=url, **kwargs)
File "D:\Program Files (x86)\Anaconda3\lib\site-
packages\requests\sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "D:\Program Files (x86)\Anaconda3\lib\site-
packages\requests\sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "D:\Program Files (x86)\Anaconda3\lib\site-
packages\requests\adapters.py", line 390, in send
conn = self.get_connection(request.url, proxies)
File "D:\Program Files (x86)\Anaconda3\lib\site-
packages\requests\adapters.py", line 291, in get_connection
conn = proxy_manager.connection_from_url(url)
File "D:\Program Files (x86)\Anaconda3\lib\site-
packages\requests\packages\urllib3\poolmanager.py", line 222, in
connection_from_url
return self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
File "D:\Program Files (x86)\Anaconda3\lib\site-
packages\requests\packages\urllib3\poolmanager.py", line 331, in
connection_from_host
self.proxy.host, self.proxy.port, self.proxy.scheme)
File "D:\Program Files (x86)\Anaconda3\lib\site-
packages\requests\packages\urllib3\poolmanager.py", line 167, in
connection_from_host
raise LocationValueError("No host specified.")
requests.packages.urllib3.exceptions.LocationValueError: No host
specified.
在计算机出错之前,我已经使用了“请求”数百次。我以前从未见过这样的错误。顺便说一句,我的互联网运行得很好,否则我不能在这里问一个问题。
我不明白我的电脑或主机文件有什么问题,如果有人可以帮助我,我会很感激。
答案 0 :(得分:1)
错误位置:
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的位置是相同的。