Python 3.9 中的“AttributeError:模块‘tweepy’没有属性‘StreamListener’”

Nay*_*jer 7 python twitter attributes tweepy

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        print(status.text)  # prints every tweet received

    def on_error(self, status_code):
        if status_code == 420:  # end of monthly limit rate (500k)
            return False
Run Code Online (Sandbox Code Playgroud)

我使用 Python 3.9 并通过 pip 安装 Tweepy。我AttributeError在课堂上接到了电话。我的进口只是import tweepy. 身份验证得到正确处理。在streaming.py文件中,我有类Stream. 但使用这个类就到此为止了。例如status.text,即使有该on_status功能,也没有。我有点困惑。

Har*_*758 12

Tweepy v4.0.0最近发布,并合并StreamListenerStream.

我建议将您的代码更新为子类Stream
或者,您可以降级到 v3.10.0。


小智 6

正如 @Harmon758 提到的,他们在版本 4 之后将StreamListener合并到Stream中。而且您不需要单独创建 api auth 对象。这是代码:

from tweepy import Stream

class MyStreamListener(Stream):
    def on_status(self, status):
        print(status.text)  # prints every tweet received

    def on_error(self, status_code):
        if status_code == 420:  # end of monthly limit rate (500k)
            return False


stream = MyStreamListener('consumer_key',
                          'consumer_secret',
                          'access_token',
                          'access_token_secret')

stream.filter(track=["Python"], languages=["en"])
Run Code Online (Sandbox Code Playgroud)