<p>我使用的是python2.7.5。我有一个网页应用程序,每隔几分钟查询一个API,已经成功地工作了一天左右。然而,在我把它放了几个小时之后,我回来发现我的程序已经停滞了好几个小时没有任何活动。我退出了这个程序,发现在一次API调用期间,它已经在ssl握手方法中暂停了大部分时间。在</p>
<p>回溯如下:</p>
<pre><code>...
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 143, in __init__
self.do_handshake()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 305, in do_handshake
self._sslobj.do_handshake()
</code></pre>
<p>我做了一些研究,似乎这是python2.6中SSL库的一个问题,但是它已经被修复了。我想知道为什么我的程序在没有抛出异常或其他任何东西的情况下被困在这里。在</p>
<p>如果有一种方法可以为SSL握手方法设置超时,我很乐意这样做,因为我希望避免我的程序再次因为类似的事情而无限期停止。我使用的是请求HTTP库,这是在macosx10.9上运行的,如果这很重要的话。建议?在</p>
<p><strong>编辑:</strong>
我做了一些研究,<a href="https://mail.python.org/pipermail/python-list/2012-June/625667.html" rel="noreferrer">it seems that others have had this specific problem with SSL</a>,尽管在2.6中实现了“修复”。不过,还不确定解决办法是什么。感谢任何帮助。在</p>
<p><strong>编辑3:</strong>
添加了我的解决方案作为这个问题的答案。在</p>