pyInstaller 参数简介

说明

以下介绍假设用户脚本为main.py,生成结果为main.exe。
有些参数实在很少用到,只列出简单介绍,具体请参阅原文。
原文(英文): https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html

通用参数

参数名描述说明
-h显示帮助
-v显示版本号
–distpath生成文件放在哪里默认:当前目录的dist文件夹内
–workpath生成过程中的中间文件放在哪里默认:当前目录的build文件夹内
-y如果dist文件夹内已经存在生成文件,则不询问用户,直接覆盖默认:询问是否覆盖
–upx-dir UPX_DIR指定upx工具的目录默认:execution path
-a不包含unicode支持默认:尽可能支持unicode
–clean在本次编译开始时,清空上一次编译生成的各种文件默认:不清除
–log-level LEVEL控制编译时pyi打印的信息一共有6个等级,由低到高分别为TRACE DEBUG INFO(默认) WARN ERROR CRITICAL。也就是默认清空下,不打印TRACE和DEBUG信息

与生成结果有关的参数

参数名描述说明
-D生成one-folder的程序(默认)生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录
-F生成one-file的程序生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内
–specpath指定.spec文件的存储路径默认:当前目录
-n生成的.exe文件和.spec的文件名默认:用户脚本的名称,即main.py和main.spec

指定打包哪些资源、代码

参数名描述说明
–add-data打包额外资源用法:pyinstaller main.py --add-data=src;dest。windows以;分割,linux以:分割
–add-binary打包额外的代码用法:同–add-data。与–add-data不同的是,用binary添加的文件,pyi会分析它引用的文件并把它们一同添加进来
-p指定额外的import路径,类似于使用PYTHONPATH参见PYTHONPATH
–hidden-import打包额外py库pyi在分析过程中,有些import没有正确分析出来,运行时会报import error,这时可以使用该参数
–additional-hooks-dir指定用户的hook目录hook用法参见其他,系统hook在PyInstaller\hooks目录下
–runtime-hook指定用户runtime-hook如果设置了此参数,则runtime-hook会在运行main.py之前被运行
–exclude-module需要排除的modulepyi会分析出很多相互关联的库,但是某些库对用户来说是没用的,可以用这个参数排除这些库,有助于减少生成文件的大小
–keypyi会存储字节码,指定加密字节码的key16位的字符串

–add-binary 使用实例可以参考:《python3 pyinstaller 打包后执行文件运行错误 No such file or directory 和 Cannot load native module 解决方法》https://blog.csdn.net/whatday/article/details/118065649

生成参数

参数名描述说明
-d执行生成的main.exe时,会输出pyi的一些log,有助于查错默认:不输出pyi的log
-s优化符号表原文明确表示不建议在windows上使用
–noupx强制不使用upx默认:尽可能使用。

其他

参数名描述说明
–runtime-tmpdir指定运行时的临时目录默认:使用系统临时目录

Windows和Mac特有的参数

参数名描述说明
-c显示命令行窗口与-w相反,默认含有此参数
-w不显示命令行窗口编写GUI程序时使用此参数有用。
-i为main.exe指定图标pyinstaller -i beauty.ico main.py

Windows特有的参数

参数名描述说明
–version-file添加版本信息文件pyinstaller --version-file ver.txt
-m, --manifest添加manifest文件pyinstaller -m main.manifest
-r RESOURCE请参考原文 
–uac-admin请参考原文 
–uac-uiaccess请参考原文 

 

 

 

PyInstaller 是一个非常强大的工具,用于将 Python 脚本打包成独立的可执行文件。通过合理使用其参数,可以更好地控制打包过程,满足不同的需求。 ### 常见参数及其用途 #### `--onefile` 此参数指示 PyInstaller 将所有依赖项打包进一个单独的可执行文件中。这种方式便于分发,但可能会增加启动时间,因为运行时需要解压所有内容。[^5] #### `--noconsole` 当使用此参数时,PyInstaller 会创建一个没有控制台窗口的应用程序。这对于图形界面应用程序特别有用,尤其是在 Windows 平台上。 #### `--icon=ICON.ico` 使用此参数可以指定应用程序的图标。这对于给应用程序一个专业的外观非常有用。例如,`--icon=myicon.ico` 会将 `myicon.ico` 设置为应用程序的图标。[^5] #### `--add-data=SRC;DEST` 此参数允许将额外的数据文件添加到打包后的应用程序中。例如,如果你的应用程序需要一些图片或者配置文件,可以使用这个参数将它们包含进去。在 Windows 上,路径分隔符使用分号(`;`),而在 Linux 和 Mac 上则使用冒号(`:`)。[^2] #### `--hidden-import=module_name` 有时,PyInstaller 可能无法自动检测到某些模块的依赖关系。在这种情况下,可以使用 `--hidden-import` 参数显式指定这些模块。例如,`--hidden-import=module_name` 会告诉 PyInstaller 包含名为 `module_name` 的模块。[^5] #### `--clean` 此参数用于清理缓存和临时文件。在重新打包之前使用它可以确保没有旧的文件干扰新的构建。 #### `--distpath=DIR`, `--workpath=DIR`, `--specpath=DIR` 这些参数分别用于指定输出目录、工作目录和 `.spec` 文件的保存目录。通过自定义这些路径,可以使项目结构更加清晰。 #### `--no-upx` UPX 是一种可执行文件压缩工具。使用 `--no-upx` 参数可以禁用 UPX 压缩,这在某些情况下可能是必要的,比如当你遇到与特定平台的兼容性问题时。 #### `--debug` 启用调试模式可以帮助开发者诊断打包过程中可能出现的问题。 ### 使用 `.spec` 文件 除了直接在命令行中指定参数外,还可以通过 `.spec` 文件来配置打包选项。`.spec` 文件是一个 Python 脚本,它定义了如何构建最终的可执行文件。首次打包时,PyInstaller 会自动生成一个 `.spec` 文件,之后可以通过修改这个文件来调整打包设置。[^5] ### 安装方法 在使用 PyInstaller 之前,需要先安装它。可以通过 pip 安装: ```bash pip install pyinstaller ``` ### 示例命令 以下是一个使用多个参数的示例命令: ```bash pyinstaller --onefile --noconsole --icon=myicon.ico --add-data "resources;resources" --hidden-import=module_name myscript.py ``` 此命令将 `myscript.py` 打包成一个没有控制台窗口的单个可执行文件,同时指定了图标文件、额外的数据文件以及一个隐藏的导入模块。 ### 注意事项 每个项目的具体情况可能不同,因此在选择参数时应考虑项目的实际需求。在打包前,建议详细阅读 PyInstaller 的官方文档,以获得更全面的信息和指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值