You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Anaconda Python启动崩溃,错误调用WinPython模块路径

多Python版本冲突问题原因解析

问题背景

本地安装了两个Python版本:

  • Anaconda 搭载的 Python 3.6.5,路径:C:\Users\Pedro\AppData\Local\Continuum\anaconda3\python.exe
  • WinPython 搭载的 Python 3.8.5,路径:C:\Users\Pedro\Documents\Softwares\Winpython.385\python-3.8.5.amd64\python.exe

双击WinPython的python.exe可正常运行,但双击Anaconda的python.exe时程序崩溃,报错信息如下:

python.exe : Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
  File "C:\Users\Pedro\Documents\Softwares\Winpython.385\python-3.8.5.amd64\Lib\abc.py", line 64, in <module>
ModuleNotFoundError: No module named '_abc'

注:WinPython路径未添加到shell环境变量,但Anaconda Python会去WinPython文件夹查找模块,删除WinPython文件夹后Anaconda Python恢复正常。

核心原因

1. Python模块搜索路径被异常植入WinPython路径

Python启动时会通过sys.path列表查找模块,即便WinPython不在系统环境变量中,仍有几种途径导致其路径被加入Anaconda Python的搜索列表:

  • PYTHONPATH环境变量:若全局或用户级环境变量中设置了PYTHONPATH并指向WinPython的Lib目录,Python启动时会优先加载该变量指定的路径,导致Anaconda的Python错误地去WinPython目录找模块。
  • 启动脚本篡改:用户目录(C:\Users\Pedro)下若存在sitecustomize.py或usercustomize.py文件,这两个文件会在Python启动时自动执行,若文件内有代码将WinPython路径添加到sys.path,就会引发路径混乱。
  • 注册表残留配置:WinPython安装或卸载过程中,可能在Windows注册表的HKEY_CURRENT_USER\Software\Python或HKEY_LOCAL_MACHINE\Software\Python项中留下了路径配置,Anaconda的Python启动时会读取这些注册表项,从而加载错误的模块路径。

2. 跨版本模块不兼容引发致命错误

_abc是Python的内置C扩展模块,不同大版本的Python(3.6 vs 3.8)对应的_abc模块二进制完全不兼容。当Anaconda的Python3.6.5错误加载WinPython3.8.5的abc.py文件时,该文件依赖的是3.8版本的_abc模块,而Anaconda的Python3.6无法识别这个模块,直接触发ModuleNotFoundError,进而导致Python初始化系统标准流失败,最终引发致命启动错误。


内容的提问来源于stack exchange,提问作者floupinette

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:02:48