virtualenv环境运行Spyder报pythonw.exe入口点未找到问题咨询
报错产生原因
这个报错是版本不匹配+路径优先级冲突导致的:
你本地安装的Anaconda路径被提前加入了系统PATH变量,当你启动virtualenv虚拟环境内的Spyder时,系统优先加载了Anaconda自带的pythoncom38.dll文件,而这个dll的版本和你虚拟环境内安装的pywin32包版本不兼容,就会触发入口点找不到的弹窗。因为Spyder运行时会自动 fallback 寻找匹配的依赖文件,所以功能不受影响,仅会出现提示弹窗。
具体修复方法
- 方案1(兼容性最高,推荐):
激活你的virtualenv虚拟环境后,依次执行以下命令重装匹配版本的pywin32包:
重装完成后再启动Spyder即可解决弹窗问题。pip uninstall pywin32 -y pip install pywin32==305 - 方案2(临时生效,适合不想改动依赖版本的场景):
每次启动Spyder前,先在已激活虚拟环境的命令行中执行以下命令,临时调整PATH优先级,优先加载虚拟环境内的依赖文件(将示例路径替换为你自己的虚拟环境实际路径):
你也可以把上述两行命令保存为set PATH=你的虚拟环境根目录\Scripts;你的虚拟环境根目录\Library\bin;%PATH% spyder.bat后缀的批处理文件,双击即可直接启动无弹窗的Spyder。 - 方案3(永久生效,可能影响Anaconda使用):
打开系统环境变量编辑面板,将所有virtualenv虚拟环境的路径移动到Anaconda相关路径的上方,保存后重启命令行即可。该方案可能导致Anaconda运行时出现依赖冲突,不推荐经常使用Anaconda的用户操作。
内容的提问来源于stack exchange,提问作者Ten Kho
相关产品推荐
相关产品推荐

