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

使用Tweepy的Stream功能时提示tweepy.streaming无StreamListener属性错误

报错解决方法

根本原因

你使用的是Tweepy 4.0及以上版本,该版本重构了流式API逻辑,直接移除了旧版的tweepy.streaming.StreamListener类,因此调用时会触发属性不存在的报错。

两种解决方案

方案1:适配新版Tweepy写法(推荐)

不需要单独定义Listener类,直接继承tweepy.Stream实现对应方法即可,修改后的代码如下:

import tweepy

# 此处保留你原来的API认证逻辑,确保已拿到有效auth凭证
class MyStream(tweepy.Stream):
    def on_status(self, status):
        webhook.send(status.text)
        # SMS.send(status.text)
        print(status.text)

    def on_error(self, status_code):
        if status_code == 420:
            # 返回False即可断开流连接
            return False

# 实例化自定义流对象,传入对应的认证参数
myStream = MyStream(
    consumer_key = "你的consumer_key",
    consumer_secret = "你的consumer_secret",
    access_token = "你的access_token",
    access_token_secret = "你的access_token_secret"
)

# 启动流过滤,参数逻辑和旧版完全一致
myStream.filter(follow=["需要监控的twitter id"], is_async=True)

方案2:降级Tweepy到旧版本

如果不想调整现有代码逻辑,可以直接将Tweepy降级到最后一个支持StreamListener的3.10.0版本,执行以下安装命令即可:

pip install tweepy==3.10.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:07