2

嘿大家!

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

我能够用这小段代码缩小范围并多次重新创建挂起。我还对代码进行了跟踪,以发现它在访问套接字模块时会处理。

你运行它,当它打印“现在”时,你断开了你的互联网。可能需要几次尝试,但在多个 occasians 上它已经降落在同一个地方。

即:模块名:socket,函数名:readline

这是我正在使用的示例代码。
python -m 跟踪 --trace test_code.py

import time
import pafy

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

如果在正确的时间断开连接,这就是它一直挂起的地方。
如果它没有在正确的位置断开连接,它将超时连接错误(这是我希望它在任何地方都做的事情......)

在此处输入图像描述

如果有人知道怎么回事,请告诉我。如果没有,我是否可以采取任何解决方法来避免将来出现挂起?


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


4

0 回答 0