Python套接字将我的代码挂在internet discon上

2024-05-23 17:05:56 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好!

我正在使用一个名为pafy的python模块,它允许我从youtube获取数据。当我用这个的时候,我的网络在某个时间断开了,它没有给出错误响应,但是挂起了我的程序。当我重新连接互联网时,代码没有恢复,我不得不重新启动它。这有点烦人,因为我不知道,在我看到它之前,我在那里挂了几个小时。我希望能阻止它再次发生。在

我可以缩小范围,用这一小段代码多次重新创建挂起。我还对代码进行了跟踪,以发现它在访问socket模块时发出了声音。在

你运行它,当它显示“现在”时,你就断开了你的互联网。它可能需要几次尝试,但在很多情况下,它都落在了同一地点。在

这是我使用的示例代码。
python-m trace—跟踪测试_代码.py

import time
import pafy

time.sleep(5)
print "now"
hello = pafy.new('https://www.youtube.com/watch?v=1jJ9sQTX4EE')

如果在正确的时间断开连接,它会一直挂起。
如果没有在正确的位置断开连接,它将超时到connectionerror(这是我希望它在任何地方都能做到的…)

enter image description here

如果有人知道怎么了,请告诉我。如果没有,有没有什么办法可以让我避免以后的麻烦?在


编辑:这家伙似乎遇到了问题并解决了。http://davejingtian.org/2014/11/14/python-hacking-urlopen-timeout-issue/ 你们觉得怎么样?在



Tags: 模块代码import程序网络声音timeyoutube