虚拟环境执行pip list报错:code for hash sha3_224 was not found
解决Ubuntu17.10升级后虚拟环境pip list报错的问题
这问题我之前帮朋友排查过类似的,核心原因是Ubuntu版本升级后,系统Python环境与虚拟环境里的旧版pip(pip9)出现了兼容性冲突,尤其是和Django相关的依赖处理逻辑不匹配。给你几个逐步排查的解决方案:
方案1:强制更新虚拟环境内的pip
进入你的虚拟环境后,直接执行这条命令更新pip到兼容新版本Ubuntu的版本:
curl https://bootstrap.pypa.io/get-pip.py | python
更新完成后再运行pip list,大概率能解决问题——毕竟pip9确实太老旧,对新系统的包管理支持不足。
方案2:重新绑定虚拟环境的Python路径
Ubuntu升级后,系统内Python的安装路径可能发生了细微变化,导致虚拟环境的路径配置失效。执行以下命令修复:
# 先退出虚拟环境,再执行 deactivate virtualenv --relocatable venv
这里的venv是你的虚拟环境名称,替换成你自己的即可。完成后重新进入虚拟环境,再尝试pip list。
方案3:重建虚拟环境(极端情况)
如果前两个方案都无效,那就备份依赖后重建虚拟环境:
- 进入虚拟环境,导出当前依赖列表:
pip freeze > requirements.txt - 删除旧虚拟环境:
deactivate rmvirtualenv venv - 用Python3.6重新创建虚拟环境:
mkvirtualenv -p python3.6 venv - 重新安装所有依赖:
workon venv pip install -r requirements.txt
本质上,这个问题就是旧版pip与新系统环境的适配问题,更新pip或者重建环境都能从根源解决。
内容的提问来源于stack exchange,提问作者Ollie
相关产品推荐
相关产品推荐

