pythonw.exe运行Python脚本模块导入失败问题及解决办法
解决pythonw.exe运行脚本时模块找不到的问题
问题场景
我想用pythonw.exe运行基础的loop.pyw脚本,方便在任务管理器里查看它的执行状态,结果运行时一直弹出stem、requests、bs4等模块未找到的错误;但如果用python loop.pyw在命令行里运行,脚本却能正常执行。
问题根源排查
经过仔细检查,发现问题出在Python环境不一致上:我的pip工具是把所有依赖模块安装到了Miniconda3的目录下,可pythonw.exe实际调用的是另一个独立的Python安装目录——这两个环境是完全隔离的,彼此不共享已安装的模块,所以pythonw.exe找不到那些已经装好的包。
解决方法
- 找到
pythonw.exe对应的Python环境的pip:右键点击pythonw.exe,选择「打开文件所在位置」,在该目录下找到Scripts文件夹,里面的pip.exe就是对应这个环境的包管理工具。 - 打开命令提示符,切换到这个
Scripts目录,执行以下命令安装所需模块:pip install stem requests bs4 - 重新用
pythonw.exe运行loop.pyw脚本,这时候就能正常执行,也能在任务管理器里确认它的运行状态了。
内容的提问来源于stack exchange,提问作者spmegaman




