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

Tweepy运行报错:'API' object has no attribute 'followers_ids'如何解决

问题排查与解决方案

核心原因

报错本质是Tweepy版本不兼容:你当前设备安装的是Tweepy 4.0及以上版本,而代码是基于Tweepy 3.x版本编写的,两个大版本的v1.1 API方法命名存在差异,followers_ids方法在4.x版本中已被重命名移除,所以触发属性不存在的报错。其他设备运行正常是因为其安装的是3.x版本的Tweepy,直接重装默认拉取最新版本,所以无法解决问题。

排查验证步骤

运行以下命令查看当前Tweepy版本:
pip show tweepy
如果返回的Version字段大于等于4.0.0,即可确认是版本兼容问题。

两种修复方案

方案1:降级到兼容的旧版本(无需修改代码)

直接安装Tweepy 3.x的最后稳定版本即可:
pip install tweepy==3.10.0
安装完成后原有代码可直接运行。

方案2:适配现有4.x版本(修改代码中的API调用)

只需修改代码中两处API方法名即可:

  1. 将Cursor(api.followers_ids, screen_name=screen_name) 改为 Cursor(api.get_follower_ids, screen_name=screen_name)
  2. 将users = api.lookup_users(user_ids=chunk) 改为 users = api.get_users(user_ids=chunk)

修改后的核心函数代码如下:

def get_followers(screen_name):
    # get followers for a given user
    fname = "users/{}/followers.json".format(screen_name)
    max_pages = math.ceil(MAX_FRIENDS / 5000)
    with open(fname, 'w') as f:
        for followers in Cursor(api.get_follower_ids, screen_name=screen_name).pages(max_pages):
            for chunk in paginate(followers, 100):
                users = api.get_users(user_ids=chunk)
                for user in users:    
                    f.write(json.dumps([user.id, user.screen_name, user.location, str(user.created_at)], sort_keys=True)+"\n")                 
            if len(followers) == 5000:
                print("More results available. Sleeping for 60 seconds to avoid rate limit")
                time.sleep(60)
    print("task completed for " + screen_name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:24:03