twitter机器人和Python的tweepy问题
问题描述:
我有几个twitterbots,我在我的raspberryPi上运行。我将大部分函数包装在一个try /中,除非确保某些错误不会中断程序并继续执行。twitter机器人和Python的tweepy问题
我也使用Python的Streaming库作为监视我想要机器人转发的标记的源。
这里是发生这种情况/杀死方案虽然我的主要功能包裹在一个不同的问题:
Unhandled exception in thread started by <function startBot5 at 0x762fbed0>
Traceback (most recent call last):
File "TwitButter.py", line 151, in startBot5
'<botnamehere>'
File "/home/pi/twitter/bots/TwitBot.py", line 49, in __init__
self.startFiltering(trackList)
File "/home/pi/twitter/bots/TwitBot.py", line 54, in startFiltering
self.myStream.filter(track=tList)
File "/usr/local/lib/python3.4/dist-packages/tweepy/streaming.py", line 445, in filter
self._start(async)
File "/usr/local/lib/python3.4/dist-packages/tweepy/streaming.py", line 361, in _start
self._run()
File "/usr/local/lib/python3.4/dist-packages/tweepy/streaming.py", line 294, in _run
raise exception
File "/usr/local/lib/python3.4/dist-packages/tweepy/streaming.py", line 263, in _run
self._read_loop(resp)
File "/usr/local/lib/python3.4/dist-packages/tweepy/streaming.py", line 313, in _read_loop
line = buf.read_line().strip()
AttributeError: 'NoneType' object has no attribute 'strip'
我的设置: 我有一个父类TwitButter.py,创建一个来自TwitBot.py的对象。这些对象是机器人,它们是在自己的线程中启动的,因此它们可以独立运行。
我在运行startFiltering()函数的TwitBot中有一个函数。它被封装在一个try/except中,但我的except代码从未被触发。
我的猜测是错误发生在流媒体库内。也许这个库编码很差,并且在回溯底部指定的行上断开。
任何帮助都会很棒,我想知道其他人是否遇到过这个问题?
如果需要,我可以提供额外的细节。
谢谢!
答
这实际上是tweepy中的问题,在2017-04年由github #870修复。所以,应该通过更新您的本地副本到最新的主人解决。
我做什么地发现:
- 难道网络搜索找到tweepy源回购。
- 查看
streaming.py
了解最后一条回溯线上的情况。 - 注意到文件的最近更改是相同的问题。
我还会注意到,大多数情况下,您从Python库内部深处获得回溯,问题来自代码调用错误,而不是库中的错误。但不总是。 :)
固定在[github#870](https://github.com/tweepy/tweepy/pull/870)所以更新您的tweepy副本? –
非常感谢!我已经做出了改变,所以它应该都很好!我很欣赏快速反应!和noob我,我不知道我可以修改这些库... – Discoveringmypath
@gz你想回答这个问题,所以我可以接受它。它似乎在工作。 – Discoveringmypath