Search code examples
pythontwitterattributestweepy

"AttributeError: module 'tweepy' has no attribute 'StreamListener'" with Python 3.9


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

I use Python 3.9 and installed Tweepy via pip. I get the AttributeError on the class line. My import is just import tweepy. Authentication gets correctly handled. In the streaming.py file, I have the class Stream. But using this class ends in that. There is for example no status.text, even if there is the on_status function. I am a little bit confused.


Solution

  • Tweepy v4.0.0 was released recently and it merged StreamListener into Stream.

    I recommend updating your code to subclass Stream instead.
    Alternatively, you can downgrade to v3.10.0.