You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tweepy调用Twitter API创建数据流时无法导入StreamListener如何解决

报错根因

你当前使用的是Tweepy 4.0及以上版本,该版本对底层实现做了不兼容升级,直接移除了旧版本中的StreamListener类,因此会触发导入失败报错。

解决方案

方案一:降级到兼容的旧版本Tweepy

如果不想调整原有代码逻辑,可以直接安装Tweepy 3.x的最终稳定版本:

pip install tweepy==3.10.0

安装完成后原有代码不需要修改即可直接运行,缺点是3.x版本已停止维护,部分新的Twitter API特性不再支持。

方案二:适配Tweepy 4.x+版本的新写法

如果你需要使用新版本的功能,可以直接调整代码适配新的流逻辑,不需要再导入StreamListener:

适配Twitter v1.1 API(和原有代码逻辑完全对齐)

import tweepy

# 替换为你自己的开发者密钥
consumer_key = "你的API Key"
consumer_secret = "你的API Secret"
access_token = "你的Access Token"
access_token_secret = "你的Access Token Secret"

class MyListener(tweepy.Stream):
    def on_data(self, data):
        try:
            with open('python.json', 'a') as f:
                f.write(data)
                return True
        except BaseException as e:
            print("Error on_data: %s" % str(e))
        return True
 
    def on_error(self, status):
        print(status)
        return True

# 初始化流并启动监听
twitter_stream = MyListener(consumer_key, consumer_secret, access_token, access_token_secret)
twitter_stream.filter(track=['#python'])

适配Twitter v2 API(官方推荐新接口)

如果是新申请的开发者账号,更推荐使用新版v2 API,写法如下:

import tweepy
import json

# 替换为你自己的Bearer Token
BEARER_TOKEN = "你的开发者平台Bearer Token"

class MyStream(tweepy.StreamingClient):
    def on_tweet(self, tweet):
        try:
            with open('python.json', 'a', encoding='utf-8') as f:
                f.write(json.dumps(tweet.data) + '\n')
                return True
        except BaseException as e:
            print(f"Error on_data: {str(e)}")
        return True
    
    def on_error(self, status):
        print(status)
        return True

stream = MyStream(BEARER_TOKEN)
# 清理旧规则避免重复监听
old_rules = stream.get_rules().data
if old_rules:
    stream.delete_rules([rule.id for rule in old_rules])
# 添加监听规则
stream.add_rules(tweepy.StreamRule("#python"))
# 启动流
stream.filter()

内容的提问来源于stack exchange,提问作者Suvodeep Ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:39:03