Ubuntu 16.04环境下出现ImportError: cannot import name 'dist'求助
解决Ubuntu 16.04虚拟环境中pip的ImportError: cannot import name 'dist'问题
看来你在Ubuntu 16.04的虚拟环境里碰到pip的导入故障了,这个错误我之前帮朋友排查过,核心原因是新版pip不再兼容Python 3.6(Ubuntu 16.04默认的Python 3版本就是3.6),导致模块导入失败。下面给你几个亲测有效的解决方法:
方法一:强制重新安装兼容版本的pip
这是最直接的方案,卸载当前有问题的pip,安装Python 3.6支持的最后一批pip版本:
# 先彻底卸载当前pip pip uninstall -y pip # 安装Python 3.6兼容的pip版本(20.3.4是最后支持3.6的稳定版) python -m pip install pip==20.3.4
执行完之后再试试pip --version,应该就能正常运行了。
方法二:用官方脚本修复(适合卸载后pip命令消失的情况)
如果卸载pip后连pip命令都找不到了,那就用官方的get-pip脚本安装:
# 下载对应Python 3.6的get-pip脚本 curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py # 用虚拟环境里的Python执行脚本,指定安装兼容版本 python get-pip.py pip==20.3.4
这个脚本会自动适配你的Python版本,不用担心版本不匹配的问题。
方法三:重建虚拟环境(彻底解决环境损坏问题)
如果上面两种方法都没用,大概率是虚拟环境本身的依赖文件损坏了,那就直接重建:
# 先退出当前虚拟环境 deactivate # 删除旧的虚拟环境目录 rm -rf /home/omermazig/.virtualenvs/fixi # 重新创建基于Python 3.6的虚拟环境 virtualenv -p python3.6 /home/omermazig/.virtualenvs/fixi # 激活新环境 source /home/omermazig/.virtualenvs/fixi/bin/activate # 安装兼容的pip版本 python -m pip install pip==20.3.4
重建后的环境会非常干净,基本能解决所有环境相关的问题。
额外提醒
Ubuntu 16.04已经停止官方支持了,Python 3.6也早就过了生命周期,之后尽量避免在这个版本系统上做开发,如果必须用,一定要确保所有工具版本和Python 3.6兼容,不要盲目升级到最新版pip。
内容的提问来源于stack exchange,提问作者omer mazig
相关产品推荐
相关产品推荐

