Tweepy库无法导入StreamListener类报错问题求助
报错原因
你安装的Tweepy为4.0及以上版本,该版本重构了流式监听模块的实现,彻底移除了旧版tweepy.streaming.StreamListener类,你升级Tweepy的操作反而会保留该问题,而非解决。
修复方案
有两种可选方案,按需选择即可:
- 方案一:降级Tweepy到支持StreamListener的最后稳定版本,无需修改现有代码
直接执行安装命令:
安装完成后重新运行原有脚本即可正常使用。pip install tweepy==3.10.0 - 方案二:适配新版Tweepy的流式API写法,无需降级
新版Tweepy取消了单独的StreamListener类,直接继承tweepy.StreamingClient重写对应回调方法即可,示例代码如下:
注意:该方案使用的是Twitter API v2版本,你需要提前在开发者后台开通API v2的相关权限才可正常使用。import tweepy # 替换为你自己的Twitter API v2 Bearer Token BEARER_TOKEN = "你的开发者密钥" class CustomStream(tweepy.StreamingClient): # 接收到推文时触发 def on_tweet(self, tweet): print(tweet.text) # 接口请求报错时触发 def on_error(self, status_code): print(f"接口返回错误码:{status_code}") # 触发限流时自动断开连接 if status_code == 420: return False if __name__ == "__main__": stream = CustomStream(BEARER_TOKEN) # 添加监听规则,示例为监听包含python关键词的推文 stream.add_rules(tweepy.StreamRule("python")) # 启动监听 stream.filter()
内容的提问来源于stack exchange,提问作者Alex Amaguaya
相关产品推荐
相关产品推荐

