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

新版Tweepy调用Stream报TypeError: Stream() takes no arguments如何解决?

报错触发原因
  • 自定义类命名冲突且构造方法不符合规则:你自行定义了名为Stream的类,该类未声明可接收参数的__init__构造方法,你编写的super__init__不是Python识别的默认构造函数,类默认生成的无参构造不接受任何传入参数,因此实例化Stream(auth, listener)时直接触发类型错误。
  • Tweepy版本接口变更:你使用的v4.0及以上版本Tweepy已重构流API逻辑,旧v3.x版本中tweepy.Stream(auth, listener)的传参方式已废弃,新版不需要单独声明listener实例、单独传入auth对象,直接继承tweepy.Stream时传入密钥参数即可实现流监听。
修复方案

删除冗余的自定义Stream类,按照新版Tweepy流API规则调整代码即可,修复后的完整代码如下:

import tweepy
import keys

class MaxListener(tweepy.Stream):
    def on_data(self, raw_data):
        self.process_data(raw_data)
        return True

    def process_data(self, raw_data):
        print(raw_data)

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

if __name__ == "__main__":
    # 直接实例化自定义的流监听类,传入四个密钥参数
    stream = MaxListener(
        consumer_key=keys.API_KEY,
        consumer_secret=keys.API_SECRET_KEY,
        access_token=keys.ACCESS_TOKEN,
        access_token_secret=keys.ACCES_TOKEN_SECRET
    )
    # 启动关键词过滤采集
    stream.filter(track=['Python'])

补充提示:注意检查keys文件中访问令牌密钥的变量名,避免拼写错误导致认证失败。如果需要兼容旧版代码逻辑,可执行pip install tweepy==3.10.0降级Tweepy版本,无需修改原有代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:18:00