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

Ubuntu环境下Python Tweepy脚本运行出现AttributeError解码错误求助

解决Python3环境下tweepy爬虫的AttributeError: 'str' object has no attribute 'decode'问题

这个问题我之前也碰到过,根源是你服务器Ubuntu环境里安装的requests-oauthlib版本太老旧,没有适配Python3的字符串处理逻辑——Python3中str本身就是Unicode字符串,不存在decode方法,但旧版本的requests-oauthlib还在假设传入的是bytes类型去调用decode,所以触发了报错。

下面是几种解决方法,按优先级推荐:

1. 优先升级requests-oauthlib到兼容版本

这是最稳妥的方案,新版本已经修复了这个字符串处理的bug:

  • 先检查当前安装的版本:
    pip show requests-oauthlib
    
  • 升级到最新稳定版:
    pip install --upgrade requests-oauthlib
    
  • 如果遇到依赖冲突,可以指定一个明确适配Python3的版本(1.0.0及以上都兼容):
    pip install requests-oauthlib>=1.0.0
    

2. 临时手动修复第三方包代码(不推荐)

如果暂时无法升级包,可以手动修改出错的函数,但注意这种修改会在包更新后被覆盖:
找到服务器上的/usr/lib/python3/dist-packages/requests_oauthlib/oauth1_auth.py文件,定位到to_native_str函数,把原来的代码:

def to_native_str(string):
    return string.decode('utf-8')

替换为:

def to_native_str(string):
    if isinstance(string, bytes):
        return string.decode('utf-8')
    return string

这样函数会先判断输入类型,只有bytes才调用decode,str直接返回,就不会触发错误了。

3. 确认tweepy版本兼容性

另外也可以检查下你使用的tweepy版本,确保它和Python3.5以及升级后的requests-oauthlib兼容。如果tweepy版本也比较老,建议一并升级:

pip install --upgrade tweepy

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:38:24