概述
Pyinstaller
是一个用于将Python程序打包成可执行文件的工具。它可以将Python程序打包成单个可执行文件,无需安装Python解释器和第三方库,方便程序的分发和部署。
Pyinstaller
支持Windows、Linux和MacOS等多个平台,可以将Python程序打包成对应平台的可执行文件。打包完成后的可执行文件可以直接在对应平台使用,无需安装任何环境或者依赖。
Pyinstaller
的使用非常简单,只需要在命令行中执行Pyinstaller
命令,并指定要打包的Python程序的入口文件即可。Pyinstaller
会自动分析程序的依赖关系,并将所有依赖的模块和库打包到可执行文件中。
打包完成后,可以在dist
目录下找到生成的可执行文件。
除了将Python程序打包成可执行文件外,Pyinstaller
还支持许多高级功能,如自定义打包选项、添加图标、加密代码等。这些功能可以通过在命令行中指定参数或创建配置文件来实现。
Pyinstaller
的优点包括:
- 简单易用:
Pyinstaller
的使用非常简单,只需要执行一个命令即可将Python程序打包成可执行文件。 - 跨平台支持:
Pyinstaller
支持多个平台,可以将Python程序打包成对应平台的可执行文件。 - 自动化打包:
Pyinstaller
会自动分析程序的依赖关系,并将所有依赖的模块和库打包到可执行文件中。 - 高级功能:
Pyinstaller
支持许多高级功能,如自定义打包选项、添加图标、加密代码等。
Pyinstaller
的缺点包括:
- 打包后文件较大:由于
Pyinstaller
会将所有依赖的模块和库打包到可执行文件中,因此打包后的文件较大。 - 不支持所有第三方库:
Pyinstaller
并不支持所有第三方库,有些库可能需要手动配置才能正确打包。 - 可执行文件可能被反编译:由于可执行文件中包含了程序的源代码,因此可能会被反编译,导致代码泄露。
但是,总的来说,Pyinstaller是一个非常好用的工具,方便程序的分发和部署。下面介绍它的使用方法。
使用方法
下面是一些常用的Pyinstaller参数和选项及其含义,我根据使用频率将其分为了两级。
高频参数
-h
:显示帮助信息。-F
:将Python程序打包成单个可执行文件。-D
:将Python程序打包成多个文件,包括可执行文件和依赖的模块和库。-w
/--windowed
:使用窗口模式,不显示命令行窗口。-c
/--console
:使用控制台模式,显示命令行窗口。-n
/--name
:指定生成的可执行文件的名称。-i
/--icon
:指定可执行文件的图标。--add-data
:指定需要打包的数据文件。--add-binary
:指定需要打包的二进制文件。-p
:指定Python模块的搜索路径。-y
:自动覆盖输出目录中的现有文件。--clean
:在打包之前清除缓存和临时文件。--distpath
:指定输出目录。--workpath
:指定工作目录。--specpath
:指定.spec
文件的输出目录。
低频参数
-s
:生成一个控制台程序,但不显示Python解释器的输出。-v
:显示详细的输出信息。--hidden-import
:指定需要导入的隐藏模块。--additional-hooks-dir
:指定额外的钩子目录。--exclude-module
:指定不需要打包的模块。--key
:指定加密代码的密钥。--upx-dir
:指定UPX压缩工具的路径。--upx-exclude
:指定不需要压缩的文件类型。--upx-compress-level
:指定UPX压缩级别。--log-level
:指定日志输出级别。--runtime-tmpdir
:指定运行时临时目录。--debug
:生成调试信息。--strip
:去除调试信息。--noconfirm
:不显示确认提示。
用例
这里给出一些常见的用法便于理解和使用
pyinstaller -F myprogram.py
PyInstaller
会将myprogram.py
文件打包成单个可执行文件,并将所有依赖的模块和库打包到可执行文件中。
pyinstaller -F --distpath=./dist --icon=myicon.ico myprogram.py
PyInstaller
会将myprogram.py
文件打包成单个可执行文件,并将所有依赖的模块和库打包到可执行文件中。生成的可执行文件将保存在./dist
目录下,并使用myicon.ico
作为图标。
pyinstaller -D --add-data "data.txt;." myprogram.py
使用-D
参数可以将Python程序打包为多个文件,使用--add-data
参数指定需要打包的数据文件。
--add-data
参数的格式是"源文件;目标目录"
,其中源文件是要打包的文件路径,目标目录是打包后文件中的目标路径。
在示例中,将data.txt
文件打包,并指定目标目录为当前目录(.
)。
打包完成后,可以在生成的可执行文件所在的目录中找到data.txt
文件。在程序运行时,可以使用相对路径或绝对路径来访问该数据文件。
请注意,--add-data
参数可以多次使用,以添加多个数据文件。每个数据文件都需要指定源文件和目标目录。