记两个版本Python共存引发的玄学事件

记两个版本Python共存引发的玄学事件

2020.02.21

? 今天由于他人特殊需求,需要将某个脚本打包为无需依赖的可执行文件,好在对方的系统是win7使得不用考虑太多跨平台编译的问题。我打算使用pyinstaller进行打包。

? 然而,当我调试完成,py main.py可以正常运行后,pyinstaller -F main.py生成的程序却一闪而过,不知出了什么问题。在控制台运行才发现竟然是No module named win32api,查看warning log得知,三个属于pywin32的模块均未找到。我再次使用解释器执行脚本,却一切正常。

? 仔细排查许久,终于发现问题所在:

? pyinstaller仅支持Python2,而我平时使用的都是Python3,也就是说py命令本质上是Python3pywin32库也同样通过pip3安装。这样一来,一切基于Python2pyinstaller自然找不到模块。那么,只需pip2 install pywin32即可解决问题。

相关推荐