pyinstaller打包遇到的一些坑

用Python的numpy,pandas,scipy,matplotlib和wxpython写了一个小软件,我用的环境是anaconda3(Python3.6),本来觉得打包后应该不大,打包的结果硬是达到了800多兆,很是无语,网上说要在虚拟环境中打包(Anaconda可以创建),这里有个坑就是你安装的pyinstaller也是在这个虚拟环境中才行,不然打包的结果还是你原来的环境。

(1)pyinstaller打包的一些参数说明:

-F:打包成单个的文件,也就是将脚本中所有用到的库都打包到一个单一文件中,也就是你要的exe文件,注意F是大写;

-w:没有加这个参数的话,运行程序时会弹出一个控制台(window下式cmd),加这个参数的话不会出现这个控制台;

-D:这个参数可以在程序运行出错时,输出错误信息,其实就是调试,在cmd中执行exe文件可以在cmd中看到完整的错误信息;

--icon:生成的exe的应用图标;

--hidden-import:不导入某些库/包

 

(2)打包成功,程序运行失败,在cmd中运行时报错:ImportError:No module named '库名.xxx.xxx',类似这种错误的,如果这个东西不是程序必须得,那么打包的时候加入--hidden-import  库名.xxx.xxx,不导入它即可解决:

pyinstaller -Fw yourfile.py --hidden-import 库名.xxx.xxx

(3)使用虚拟环境打包时,要安装你程序中用到的所有库,如果没安装可以成功打包,但是运行时会报错:找不到库。详细的错误可以在build文件夹相应的目录下找到,比如我的脚本是mainwindow.py,那么这个文件夹就是mainwindow,其中有个文件warn-mainwindow.txt记录了所有丢失的库名等错误信息,如下图所示:

pyinstaller打包遇到的一些坑_第1张图片

还有别的坑,可以参考以下网友的链接:

https://blog.csdn.net/A807296772/article/details/82769835

 

你可能感兴趣的:(移动开发,web开发)