站点图标 小文's blog

记录使用PyInstaller打包exe可执行程序遇到的问题

pyinstaller安装

官方网站:https://www.pyinstaller.org/

直接使用pip安装即可全局使用。

本文仅记录博主在pyinstaller使用过程中遇到的一些问题,如果你是第一次接触pyinstaller,请先阅读pyinstaller说明文档

pyinstaller常用参数

部分常用命令行参数如下:

通常,由于参数过多,不方便记录,博主一般先生成.spec文件后再编辑spec文件。

PS:spec文件是pyinstaller打包过程中生成的配置文件,所有的命令行参数都会存于该文件。

使用pyi-makespec来生成spec文件

参数和pyinstaller一致,执行完毕后会在当前目录生成一个.spec的配置文件,部分参数和说明如图:

修改完spec文件之后,用pyinstaller打包即可在dist文件夹内生成可执行exe

pyinstall打包单个py文件

pyinstaller 引入资源文件

如果是简单的脚本,通知只需要一个main.py程序即可完成,我们只需要打包单个py文件即可。

可如果涉及到资源文件的引入(比如外部调用文件),我们就需要将这些文件一起打包进exe文件里,方便调用。

将多个杂乱无章的文件转换成一个可执行文件,这也是打包的意义所在。

首先我们要在spec配置文件中配置要引入的文件夹

打包的可执行程序在运行过程中,会将这些目录释放到系统的tmp临时目录,我们要适当修改程序来获取这些目录的绝对地址供我们在程序中调用。

pyinstaller -w(--noconsole)参数导致无法运行

根据官方文档,打包时加入-w参数不弹出控制台。

我当然是默认就加上了,可在实际测试过程中发现,程序一闪而过,没有输入输出,最后还是去掉了w参数。

如果脚本使用文件输入输出函数的,建议去掉这个参数。

Windows7执行报错 缺少api-ms-win-core-path-l1-1-0.dll

由于最新的python3.9不支持Windows7,所以导致使用python3.9打包的可执行程序不能再Windows7上运行。

使用Windows3.8打包或者在打包时引入api-ms-win-core-path-l1-1-0.dll文件即可。

引用:

退出移动版