Python版本:Python3.8
一、安装Pyinstaller
1、安装pywin32
-
-
下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后安装
-
使用pip命令安装:pip install pywin32
-
2、安装Pyinstaller
-
-
下载安装文件安装:官网
-
-
-
使用pip命令安装:pip install PyInstaller
-
二、使用Pyinstaller
1、使用下载安装的方式安装的Pyinstaller打包方式
将需要打包的文件放在解压得到的Pyinstaller文件夹中,打开cmd窗口,把路径切换到当前路径打开命令提示行,输入以下内容(最后的是文件名):
-
- python pyinstaller.py -F myfile.py
2、使用pip方式安装的Pyinstaller打包方式
打开cmd窗口,把路径切换到文件所在路径(文件随便放在哪里都行)打开命令提示行,输入以下内容(最后的是文件名):
-
- pyinstaller -F myfile.py
3、输入参数的含义
-
-F 表示生成单个可执行文件
-
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-
-i 表示可执行文件的图标
打包exe文件:
如果是打包一个py文件,可以使用“pyinstaller -F 待打包文件名”进行打包,在命令执行完毕后,会在dist目录下生成一个“待打包文件名.exe”的文件。如果不使用“-F”参数,则会在dist目录下生成一个“待打包文件名”的文件夹,该文件夹下包含“待打包文件.exe”,但是要整个文件夹在一起才能正常工作,因为这个文件夹的功能相当于使用“-F”时的一个“待打包文件.exe”。
使用“F”强制打包参数,有时会导致软件功能运行不正常,仅限于小的范例使用,如果项目有多个py文件,则建议别再使用“F”参数。
如果项目有多个文件,打包时可以把多个文件列出来,中间用空格隔开即可。
如果需要修改默认图标为指定图标,则使用“-i 图标文件名”来实现。如:pytinstall -i XXX.ico run.py test1.py test2.py test3.py
如一个项目下有多个子文件,子文件里面又有py文件或配置文件,打包方法参考:1、把启动文件放在和文件夹一个目录。 2、pyinstaller -D 启动文件 3、这时候会生成buid和dist dist应该是空的 但是会多出一个启动文件名.spec 4、在.spec文件里写上 import sys sys.setrecursionlimit(100000) block_cipher = None 5、pyinstaller 启动文件名.spec 6、这时候dist文件夹里就有启动文件.exe程序了 如果没有其他错误i应该就可以执行了。(没试过)
pyinstaller的参数见下表,大家可以在需要时参考。
三、注意事项
-
文件中使用了第三方库的打包方式
在打包之前务必找到第三方库的包,把包复制到到跟myfile.py同目录下,然后再使用以上2种方式打包,否则会打包失败或者即使打包成功,程序也会闪退。
下面演示一下使用了第三方库的打包方式:
-
- 找到第三方库的包,如使用了requests,可以使用查找的方式,找到这个包在哪里,然后把它复制到myfile.py同目录下
-
- 把包文件复制到myfile.py目录下
-
- 给程序换图标的方法
- 输入命令中添加一个-i tubiao.ico(图标的相对路径)。如图:
- 给程序换图标的方法
四、exe文件生成
- 如果程序打包过程没有报错,则会生成3个文件夹(有时候是2个),其中名为dist的文件夹中会有一个myfile.exe文件,运行一下,如果没有问题就打包成功,可以把这个exe文件单独拿出去用,其他的生成的文件夹可以删掉了。