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

Ubuntu升级后pip3运行报错NameError: name 'unicode' is not defined

解决方案

根因说明

NameError: name 'unicode' is not defined 报错的核心原因是:Python3运行时错误加载了残留的Python2.7版本模块。unicode是Python2的专属内置类型,Python3中该类型已更名为str,调用Python2路径下的typing模块就会触发该错误。
跨Ubuntu大版本升级时,系统不会自动清理用户本地目录下的Python2站点包,而Python3的模块搜索顺序中~/.local下的用户目录优先级高于系统目录,是该问题的常见诱因。

修复步骤

  • 清理用户目录下的Python2残留包
    普通用户执行pip报错时,先删除当前用户下的Python2站点包目录:
rm -rf ~/.local/lib/python2.7

如果是用sudo执行pip命令报错,还要删除root用户下的残留目录:

sudo rm -rf /root/.local/lib/python2.7
  • 修复pip3指向
    如果清理后还是报错,重新安装系统自带的python3-pip,覆盖可能异常的软链:
sudo apt update
sudo apt install --reinstall python3-pip
  • 补充python3的update-alternatives配置
    你之前仅配置了python命令的替代项,没有配置python3的替代项,所以执行sudo update-alternatives --config python3会提示无可选配置,补充配置即可:
    首先确认你系统中Python3的实际版本路径,Ubuntu20.04默认是Python3.8:
# 确认路径存在
ls /usr/bin/python3.8
# 添加到update-alternatives配置
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 10

配置完成后即可正常执行版本切换命令。

  • 验证修复效果
    执行以下命令确认功能恢复正常:
# 确认Python3版本正常
python3 --version
# 确认pip3指向Python3
pip3 --version
# 测试pip升级无报错
python3 -m pip install --upgrade pip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:39:03