记两个版本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
命令本质上是Python3
,pywin32
库也同样通过pip3
安装。这样一来,一切基于Python2
的pyinstaller
自然找不到模块。那么,只需pip2 install pywin32
即可解决问题。