1. 库的介绍
PyInstaller 是一个将 Python 程序打包成独立执行文件的工具,常用于将 Python 脚本打包为可执行文件。
首先安装pyinstaller: pip install pyinstaller
以下是一些常见的 PyInstaller 参数及其解释:
2. 基本命令
pyinstaller myscript.py
默认情况下,这条命令会将 myscript.py 文件打包成可执行文件。输出的可执行文件位于 dist 文件夹中。
3. 常见参数
3.1: --onefile
将所有内容打包成一个单独的可执行文件。默认情况下,PyInstaller 会生成一个文件夹,其中包含可执行文件和相关的依赖文件。使用此选项后,所有文件会被打包成一个文件。
pyinstaller --onefile myscript.py
3.2: --noconsole
在 Windows 上,默认的 Python 程序会有一个命令行窗口。如果你的程序是 GUI 程序,使用这个选项可以避免显示命令行窗口。常用于 PyQt 或 Tkinter 等图形界面程序。
pyinstaller --noconsole myscript.py
3.3: --icon=ICON.ico
设置可执行文件的图标。你可以提供一个 .ico 格式的图标文件。这个选项通常用于自定义应用程序的外观。
pyinstaller --icon=myicon.ico myscript.py
3.4: --add-data=SRC;DEST
将外部文件或文件夹添加到打包的可执行文件中。SRC 是源文件路径,DEST 是目标路径。多个文件时可以多次使用此选项。
在 Windows 上,SRC;DEST 用分号(;)分隔。
在 Linux 和 macOS 上,使用冒号(:)分隔。
pyinstaller --add-data="datafile.txt;data" myscript.py
3.5: --hidden-import=module_name
用来指定 PyInstaller 在分析程序时,自动忽略的模块。通常,如果你的代码动态导入模块,PyInstaller 可能无法自动检测到这些模块,需要显式地添加。
pyinstaller --hidden-import=my_module myscript.py
3.6: --clean
清除上次构建过程中的临时文件,确保从头开始构建。此选项有助于解决一些缓存问题,尤其是在修改代码后打包时。
pyinstaller --clean myscript.py
3.7: --distpath=DIR
指定生成的可执行文件所在的目录。默认情况下,PyInstaller 会在当前目录下创建一个 dist 文件夹。
pyinstaller --distpath=output myscript.py
3.8: --workpath=DIR
指定 PyInstaller 工作目录的位置,默认情况下,它会生成一个 build 文件夹用于存放中间文件。
pyinstaller --workpath=build myscript.py
3.9: --specpath=DIR
用来指定 .spec 文件的存放目录。.spec 文件包含了打包过程的配置信息,通常你可以修改 .spec 文件来定制 PyInstaller 的行为。
pyinstaller --specpath=specs myscript.py
3.10: --no-upx
禁用 UPX 压缩,UPX(Ultimate Packer for eXecutables)是一种可执行文件压缩工具,PyInstaller 默认使用它来压缩可执行文件。如果你在某些系统上遇到兼容性问题,可以禁用 UPX 压缩。
pyinstaller --no-upx myscript.py
3.10: --debug
开启调试模式,这可以帮助你在打包后的应用程序中看到更多的调试信息,常用于排查问题。
pyinstaller --debug myscript.py
3.10: --clean
清除上次打包的临时文件,帮助解决某些缓存问题。用于确保构建从头开始。
pyinstaller --clean myscript.py
4. 使用 .spec 文件
PyInstaller 会生成一个 .spec 文件,它记录了打包时的配置,可以修改该文件来定制打包行为。生成 .spec 文件的命令是:
pyinstaller --onefile --noconsole myscript.py
此时会生成一个 myscript.spec 文件。你可以编辑该文件来修改打包过程中的一些细节(如添加数据文件、修改图标等)。编辑后,可以用以下命令重新打包:
pyinstaller myscript.spec
5. PyInstaller 常见的输出目录
dist/:包含打包后生成的可执行文件。
build/:包含中间文件和临时文件。
*.spec:配置文件,记录了打包过程中的设定。
6. 其他选项
--version-file=VERSION.txt:使用版本文件生成版本信息。可以指定一个包含文件版本、公司名等信息的 .txt 文件。
# UTF-8 编码
# 版本信息文件
[Version]
Major=1
Minor=0
Micro=0
Release=0
Build=1001
# 产品信息
ProductName=MyApp
FileDescription=My Python Application
CompanyName=YourCompany
LegalCopyright=© 2024 YourCompany. All rights reserved.
FileVersion=1.0.0.1001
ProductVersion=1.0.0
--strip:删除不必要的调试符号,减小可执行文件大小。
这些是 PyInstaller 的一些常见参数,了解它们可以帮助你更灵活地打包 Python 程序。