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代码从未被触发。

我的猜测是错误发生在流媒体库内。也许这个库编码很差,并且在回溯底部指定的行上断开。

任何帮助都会很棒,我想知道其他人是否遇到过这个问题?

如果需要,我可以提供额外的细节。

谢谢!

+1

固定在[github#870](https://github.com/tweepy/tweepy/pull/870)所以更新您的tweepy副本? –

+1

非常感谢!我已经做出了改变,所以它应该都很好!我很欣赏快速反应!和noob我,我不知道我可以修改这些库... – Discoveringmypath

+0

@gz你想回答这个问题,所以我可以接受它。它似乎在工作。 – Discoveringmypath

这实际上是tweepy中的问题,在2017-04年由github #870修复。所以,应该通过更新您的本地副本到最新的主人解决。

我做什么地发现:

  • 难道网络搜索找到tweepy源回购。
  • 查看streaming.py了解最后一条回溯线上的情况。
  • 注意到文件的最近更改是相同的问题。

我还会注意到,大多数情况下,您从Python库内部深处获得回溯,问题来自代码调用错误,而不是库中的错误。但不总是。 :)