1、使用步骤
第一步:安装包
pip install pyinstaller==3.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
第二步:替换..\Lib\site-packages里的PyInstaller文件(若使用时没有出问题可以跳过)
(PyInstaller.zip文件包含在“python打包.xmind”文件中,在文章底部有获取方法)
第三步:执行打包的方法
(1)简单的打包
pyinstaller -F -w name.py
(2)较复杂的打包
pyi-makespec name.py
生成一个自定义的spec文件
pyinstaller -F name.spec
执行spec文件进行打包
2、常用的指令参数
-F
pyinstaller -F name.py
只生成一个name.exe文件。
-D
pyinstaller -D name.py
默认选项,除了name.exe外,还会生成依赖文件。
-c
pyinstaller -c name.py
默认选项,只对windows有效,使用控制台。
-w
pyinstaller -w name.py
只对windows有效,不使用控制台。
-p
pyinstaller -p E:\python3.6\Lib\site-packages name.py
设置导入路径,当打包报错,找不到某个模块时用到。
-i
pyinstaller -i D:\filename.icon name.py
设置exe文件图标。
--version-file
pyinstaller name.py --version-file version_info.txt
为生成的exe程序添加版本信息
3、spec文件详解
# -*- mode: python -*-
import sys
sys.setrecursionlimit(1000) # 设置递归深度
# "RecursionError: maximum recursion depth exceeded" 出现这个错误时可增加递归深度的值
PATH = 'D:\\MyProject\\ProjectName' # 项目根路径
block_cipher = None
a = Analysis(['main.py'], # 可打包多个py文件,第一个文件为启动文件
pathex=[PATH], # 文件路径,当打包时出现模块找不到的情况可以向此处添加模块路径
binaries=[],
datas=[(PATH+'\\files','files')], # 将源文件一起打包
hiddenimports=[], # "No Module named xxx" 出现此错误时可在此加入模块名称
hookspath=[],
runtime_hooks=[],
excludes=[], # 不打包的模块,可用此方法来减小exe文件的大小
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='main', # 打包后的exe名称
debug=False,
strip=False,
upx=True,
console=False )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='main')
4、xmind总结
5、获取xmind文件方法
扫描下面二维码,关注公众号【精讲编程语言】,回复 “PyInstaller” 即可获取xmind文件。