Ubuntu 22.04启动bpython时出现ImportError错误的修复咨询
Ubuntu 22.04启动bpython时出现ImportError错误的修复咨询
嘿,这个问题我之前也碰到过!从你贴的报错日志来看,根源是更新pip模块后,用户本地安装的urllib3版本和Ubuntu 22.04自带的Python 3.10不兼容。
具体来说,Python 3.10已经把collections里的Mapping类移到collections.abc模块里了,但你本地的旧版urllib3还在尝试从collections导入Mapping,这就直接触发了ImportError。
给你几个可行的修复方案:
方案一:卸载本地旧版urllib3,安装兼容版本
因为报错里显示urllib3是在/home/cuser/.local/lib/python3.10/site-packages下的(属于用户本地安装,不是系统包),直接用pip卸载再重装兼容版本就行:pip uninstall urllib3 pip install urllib3>=1.26.151.26.15及以上的urllib3版本已经适配了Python 3.10的导入路径变化。
方案二:用系统包管理器修复系统级依赖
如果不想用pip管理系统工具的依赖,可以先移除系统的requests和urllib3,再重新安装适配系统Python的版本:sudo apt remove python3-requests python3-urllib3 sudo apt install python3-requests python3-urllib3
另外给个小建议:以后用pip安装第三方模块时,尽量用虚拟环境(比如python3 -m venv创建),这样本地安装的模块只会在虚拟环境里生效,不会干扰系统自带的工具(像bpython这种依赖系统包的工具就不会出问题啦)。
备注:内容来源于stack exchange,提问作者brownser
相关产品推荐
相关产品推荐

