与类似工具相比,PyInstaller的主要优势在于PyInstaller可与Python 3.5-3.7一起使用;由于透明压缩,它可以构建较小的可执行文件;它是完全多平台的;并使用OS支持来加载动态库,从而确保完全兼容。—官网
其他的打包工具支持python的版本不同,详细看官网
官方文档:地址
安装开发版(最新)
pip install https://github.com/pyinstaller/pyinstaller/tarball/develop
问题
很多时候是因为第三方库的版本太高了
pyinstalelr打包遇到过的问题:
- 第一次距离现在1年多了,细节不是很清楚,那次问题涉及的库比较少,
imageio
应该是这个,功能简单。当时python版本3.6.3,一直打包失败。按照报错信息,把要安装的都装了,还是一直失败。最后再某个网站上看到说是把numpy
的版本降级,然后就打包好了。原因不明,项目中没有用到numpy
,猜测有可能是imageio
可能用到了。当时没有细究。 - 第二次python:3.6.3,具体忘了。少了个dll文件,在电脑中找到,放进去好了。
- 第三次(本次):python:3.7.9, pyinstaller: 4.0, tkinter
中途换过pyinstaller的版本,,3.2.1, 4.1(测试版本,github上下载)
在没有使用matplotlib
之前,用所有版本打包不成功,测试版本成功。
使用了matplotlib
之后,一直不成功。
报错信息(忘了保存):
大致意思,就是可能用了那个模块,然后版本过高的问题,于是卸载改版本,降级,The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and will be removed in 3.3. ............ .......... matplotlib.__init__................. NameError: 'defaultPara' is not defined
pip install matplotlin==3.2
,成功,import warnings warnings.simplefilter("error") # 这句好像有没有都一样&#x