Ubuntu服务器激活pipenv环境报错:collections无MutableMapping属性
问题原因
你遇到的AttributeError: module 'collections' has no attribute 'MutableMapping'错误,核心是Python版本与老旧pipenv版本不兼容:
- 你的pipenv版本为11.9.0,属于早期版本,它内置的requests库仍在使用
collections.MutableMapping的旧写法。 - 在Python 3.10及以上版本中,
MutableMapping已从collections模块迁移至collections.abc子模块,老代码找不到该属性就会触发报错。
解决方法
方法一:升级pipenv到兼容版本(推荐)
- 卸载系统自带的老旧pipenv:
sudo apt remove pipenv
- 通过pip重新安装最新版pipenv:
pip install --user pipenv
- 确保用户目录下的pipenv路径被加入系统PATH(若未添加过):
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
- 重新执行
pipenv shell即可正常激活环境。
方法二:临时补丁修复(仅应急使用)
若暂时无法升级pipenv,可修改报错文件:
找到/usr/lib/python3/dist-packages/pipenv/vendor/requests/cookies.py,将第172行的collections.MutableMapping替换为collections.abc.MutableMapping。
注:此方法仅为临时修复,后续操作仍可能出现问题,优先推荐升级pipenv。
内容的提问来源于stack exchange,提问作者Docker
相关产品推荐
相关产品推荐

