Python 使用PyInstaller打包发布

打包发布

1.安装插件PyInstaller

 pip install PyInstaller 

2.在目录根目录内新增main.spec文件(打包脚本)

 1 # -*- mode: python ; coding: utf-8 -*-
 2 
 3 block_cipher = None
 4 
 5 py_files = ['main.py',
 6             'XXX\XX.py',
 7             'YYYY\YYYYYY.py'
 8             ]
 9 add_files = [
10     ('chromedriver.exe','.'),  # .表示将资源文件复制到打包文件的根目录
11     ('AppSettings.ini','.'),
12     ('doc\*.txt','doc'), 
13     ('images\my.png','images'),
14     ]
15 a = Analysis(py_files,         #所有脚本文件路径
16              pathex=['E:\XX\XX'], #项目根目录
17              binaries=[],
18              datas=add_files ,  #打包资源文件(图片、文档、视频等)
19              hiddenimports=[],
20              hookspath=[],
21              runtime_hooks=[],
22              excludes=[],
23              win_no_prefer_redirects=False,
24              win_private_assemblies=False,
25              cipher=block_cipher,
26              noarchive=False)
27 pyz = PYZ(a.pure, a.zipped_data,
28              cipher=block_cipher)
29 exe = EXE(pyz,
30           a.scripts,
31           [],
32           exclude_binaries=True,
33           name='test',   #打包后exe名称
34           debug=False,
35           bootloader_ignore_signals=False,
36           strip=False,
37           upx=True,
38           console=True )  #是否显示命令窗口,默认true
39 coll = COLLECT(exe,
40                a.binaries,
41                a.zipfiles,
42                a.datas,
43                strip=False,
44                upx=True,
45                upx_exclude=[],
46                name='test')  #打包后文件夹名称

3.执行打包命令

 pyinstaller -F main.spec 

4.完成后会在项目内出现build及dist文件夹,打包文件在dist文件夹内

PS:

也可以不写spec,直接执行-F命令强制打包。但是需要打包的项目如果有资源文件及多个脚本文件依赖时,会出现打包丢失文件。所以建议按照标准打包。

直接打包exe命令(main为入口py):

pyinstaller -F main.py

参考:https://www.cnblogs.com/the3times/p/12386007.html

原文地址:https://www.cnblogs.com/JHelius/p/12619169.html