Windows 10 上的工作网络连接 PyCurl 超时
PyCurl Timing Out With Working Network Connection on Windows 10
当使用使用 PyCurl/LibCurl 发出请求的 GrabLib 时,我在发送请求时不断收到超时错误。但是,当使用请求模块时,requests.get 方法可以毫无问题地连接到第三方网站。
这是我使用请求和 pycurl 的示例代码:
import pycurl
import requests
r = requests.get('http://www.google.com')
print r
c = pycurl.Curl()
c.setopt(pycurl.TIMEOUT_MS, 3000)
c.setopt(pycurl.URL, 'http://www.google.com/')
c.perform()
这是代码的输出:
<Response [200]>
Traceback (most recent call last):
File "C:/Users/redacted/test2.py", line 10, in <module>
print c.perform()
pycurl.error: (28, 'Resolving timed out after 3000 milliseconds')
谁能告诉我为什么会这样?我在这里走投无路了。
翻译了一些俄语 Google 组评论后,我确定从 "PycURL / 7.43. 0 libcurl / 7.47. 0 OpenSSL / 1.0 2e zlib / 1.2 8 c -.. Ares / 1.10 0 libssh2 / 1.6 0" 降级到 "PycURL/7.19.5.3 libcurl/7.45.0 WinSSL zlib/1.2.8"(打印有 "print (pycurl.version)")可以解决我遇到的任何问题。我不确定 PyCurl 的复杂性,以及这些版本之间发生了什么变化,所以我无法告诉您为什么会这样。我只知道这暂时解决了问题。
如果有帮助的话,当我从工作网络切换到家庭网络时,这种情况就开始了;但我也有一个在启动时运行的 VPN (P.I.A)。这让我相信某种 Windows 10 网络设置是导致此问题的原因。起初,当问题发生时,我可以重置我的机器,它会解决问题,只是为了稍后发生(我假设我的 VPN 连接时?)。在我从家庭网络回到工作网络后,出于不相关的原因,我卸载了 P.I.A.,PyCurl 完全停止工作。同样,无论出于何种原因,降级暂时解决了这个问题。
如果有人能更深入地了解为什么这可能只发生在 PyCurl 上,那么我们将不胜感激。
参考链接:
https://groups.google.com/forum/#!topic/python-grab/PwoplNwa1TI
https://bintray.com/pycurl/pycurl/pycurl/view#files (pycurl-7.19.5.1.win32-py2.7.msi)(我卸载了 pycurl 并在 Windows 10 x64 上安装了这个版本)
当使用使用 PyCurl/LibCurl 发出请求的 GrabLib 时,我在发送请求时不断收到超时错误。但是,当使用请求模块时,requests.get 方法可以毫无问题地连接到第三方网站。
这是我使用请求和 pycurl 的示例代码:
import pycurl
import requests
r = requests.get('http://www.google.com')
print r
c = pycurl.Curl()
c.setopt(pycurl.TIMEOUT_MS, 3000)
c.setopt(pycurl.URL, 'http://www.google.com/')
c.perform()
这是代码的输出:
<Response [200]>
Traceback (most recent call last):
File "C:/Users/redacted/test2.py", line 10, in <module>
print c.perform()
pycurl.error: (28, 'Resolving timed out after 3000 milliseconds')
谁能告诉我为什么会这样?我在这里走投无路了。
翻译了一些俄语 Google 组评论后,我确定从 "PycURL / 7.43. 0 libcurl / 7.47. 0 OpenSSL / 1.0 2e zlib / 1.2 8 c -.. Ares / 1.10 0 libssh2 / 1.6 0" 降级到 "PycURL/7.19.5.3 libcurl/7.45.0 WinSSL zlib/1.2.8"(打印有 "print (pycurl.version)")可以解决我遇到的任何问题。我不确定 PyCurl 的复杂性,以及这些版本之间发生了什么变化,所以我无法告诉您为什么会这样。我只知道这暂时解决了问题。
如果有帮助的话,当我从工作网络切换到家庭网络时,这种情况就开始了;但我也有一个在启动时运行的 VPN (P.I.A)。这让我相信某种 Windows 10 网络设置是导致此问题的原因。起初,当问题发生时,我可以重置我的机器,它会解决问题,只是为了稍后发生(我假设我的 VPN 连接时?)。在我从家庭网络回到工作网络后,出于不相关的原因,我卸载了 P.I.A.,PyCurl 完全停止工作。同样,无论出于何种原因,降级暂时解决了这个问题。
如果有人能更深入地了解为什么这可能只发生在 PyCurl 上,那么我们将不胜感激。
参考链接:
https://groups.google.com/forum/#!topic/python-grab/PwoplNwa1TI
https://bintray.com/pycurl/pycurl/pycurl/view#files (pycurl-7.19.5.1.win32-py2.7.msi)(我卸载了 pycurl 并在 Windows 10 x64 上安装了这个版本)