文档对应内容为 pyinstaller 4.2, 支持 python 3.5+
如果需要使用python2.7,则需要使用 pyinstaller <= 3.6
从PyPI安装
pip install pyinstaller
升级
pip install --upgrade pyinstaller
语法:
pyinstaller [选项] 脚本 [脚本...] # 使用命令行方式
常用选项:
-D # 生成单个可执行程序
-F # 生成一个目录,包含多个文件和一个可执行程序
# 某些Python脚本以PyInstaller无法检测到的方式导入模块:例如,通过对可变数据使用__import __()函数,使用imp.find_module()或在运行时操作sys.path值。
# 此时需要通过命令行添加文件或文件夹路径,或者修改spec文件的方式,告诉pyinstaller这些信息
--add--data <src;dest> # 添加一个或多个非二进制文件或文件夹到可执行程序,分隔符根据系统不同使用不同的,(windows使用 ;)
--add-binary <src;dest> # 添加一个或多个二进制文件到可执行程序
-p DIR # 添加一个imports搜索路径。多个路径使用冒号(:)分隔,或者使用该命令添加多次
--hiden-import MODULENAME # 添加隐式的import模块到可执行文件,多个模块可使用该命令添加多次
# 加密python字节码,生成加密的文件
# 使用时候会提示需要安装的包tinyaes,依照提示安装即可:pip install tynyaes
--key KEY # KEY为自定义的加密密钥 eg: --key 123456 即,使用123456作为密钥来加密
-c # 可执行程序运行时,打开一个标准IO窗口(命令行窗口),用于接收print调试输出
-w # 可执行程序运行时,不提供标准IO窗口
-i <FILE.ico or FILE.exe,ID or FILE.icns or "NONE">
# FILE.ico:将该图标应用于Windows可执行文件。
# FILE.exe,ID,从exe中提取具有ID的图标。
# FILE.icns:将图标应用于Mac OS X上的.app捆绑包。
# "NONE": 不应用任何图标,从而使操作系统显示某些默认设置(默认:应用PyInstaller的图标)
参考官方文档
https://pyinstaller.readthedocs.io/en/stable/usage.html
命令行过长的处理方式
pyinstaller --noconfirm --log-level=WARN ^
--onefile --nowindow ^
--add-data="README;." ^
--add-data="image1.png;img" ^
--add-binary="libfoo.so;lib" ^
--hidden-import=secret1 ^
--hidden-import=secret2 ^
--icon=..\MLNMFLCN.ICO ^
myscript.spec
import PyInstaller.__main__
# pyinstaller my_script.py --onefile --windowed
PyInstaller.__main__.run([
'my_script.py',
'--onefile',
'--windowed'
])
语法:
# 首次执行会在指定或默认目录生成my_script.spec文件
pyinstaller options.. my_script.py
# 根据需要修改my_script.spec文件后,可执行命令构建可执行程序
pyinstaller my_script.spec
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。