多Python版本共存问题:Python 3.13的pip报错ModuleNotFoundError: No module named 'importlib._abc'
这种情况我之前也碰到过,核心原因就是32位Python 3.9和64位Python 3.13的环境关联搞混了——系统调用pip的时候,误用到了32位版本的相关依赖,导致64位3.13的pip找不到自己需要的importlib._abc模块。给你几个亲测有效的解决办法:
精准指定Python版本调用pip
别直接用pip命令,而是通过对应Python版本的可执行文件来调用pip,这样能彻底绕开环境变量的冲突。比如对于64位Python 3.13,直接用:python3.13 -m pip [你的命令,比如install 包名]如果系统识别不了
python3.13,就用完整路径,比如Windows下一般是C:\Python313\python.exe -m pip ...修复Python 3.13的pip绑定
打开命令提示符,用3.13的Python重新安装并升级pip,强制绑定正确的版本:python3.13 -m ensurepip --upgrade这个命令会重新给3.13生成专属的pip环境,不会再和3.9 32位的内容混在一起。
用Python Launcher精准切换版本
Windows安装Python时默认会自带Python Launcher,用它能精准定位到对应位宽的版本,完全不会搞混:- 调用64位3.13的pip:
py -3.13-64 -m pip ... - 调用32位3.9的pip:
py -3.9-32 -m pip ...
这是我最推荐的方法,不管装多少版本,用这个都能精准调用。
- 调用64位3.13的pip:
调整环境变量顺序(可选)
把64位Python 3.13的安装路径(比如C:\Python313和C:\Python313\Scripts)移到系统环境变量Path的最顶部,这样系统会优先找到3.13的文件。不过这个方法有个小缺点:如果之后要频繁切换到3.9,可能需要临时调整Path,不如用Python Launcher方便。
另外提醒下,安装多个Python版本时,尽量不要让不同位宽的版本的Scripts目录(pip所在目录)在Path里优先级混乱,用上面的精准调用方法基本就能解决90%的共存问题了。
备注:内容来源于stack exchange,提问作者Hanuman




