pyinstaller相关使用方法 & 踩坑

pyinstaller相关使用方法

最近有把python项目打包成.exe,所以找到了pyinstaller这款工具,
第一次使用的时候踩了一些坑,在此记录一下。

参数表

参数 说明
-h, --help 显示帮助信息
-v, --version 显示 PyInstaller 版本
-F, --onefile 生成单个可执行文件
-D, --onedir 生成包含多个文件的目录(默认)
--add-data <源:目标> 添加额外的数据文件(多个用 ; 分隔,Windows 使用 ;,Linux/macOS 使用 :
--add-binary <源:目标> 添加额外的二进制文件
--hidden-import <模块> 指定隐藏导入的模块
--exclude-module <模块> 排除某些模块
--collect-submodules <模块> 收集指定模块的所有子模块
--collect-data <模块> 收集指定模块的数据文件
--icon <图标文件> 指定应用程序图标(.ico.icns 文件)
--name <应用名> 指定生成的可执行文件名称
--log-level <LEVEL> 设置日志级别(DEBUG, INFO, WARN, ERROR, CRITICAL)
--noconsole, --windowed 在 Windows/macOS 上不显示终端窗口(适用于 GUI 应用)
--console 在 Windows/macOS 上显示终端窗口(默认)
--clean 清理缓存并重新编译
--noupx 禁用 UPX 压缩
--strip 去除符号表(Linux/macOS)
--debug 生成调试模式的可执行文件
--key <密钥> 使用密钥对 Python 代码进行加密
--uac-admin 以管理员权限运行(Windows)
--uac-uiaccess 允许应用程序绕过 Windows 用户账户控制(UAC)
--specpath <路径> 指定 .spec 文件的存放目录
--distpath <路径> 指定生成的可执行文件存放目录(默认 dist/
--workpath <路径> 指定工作目录(默认 build/
--runtime-tmpdir <路径> 指定临时目录
--bootloader-ignore-signals 让 bootloader 忽略 SIGINTSIGTERM(Linux/macOS)

更多详细信息可以参考官方文档:PyInstaller 官方文档

注意事项 | 常见的坑

  1. 打包

如果打包成单个文件体积会小一些,但是启动会更慢,因为在启动时需要创建临时文件夹,所以推荐使用生成文件夹的方式,尤其是你需要使用json等格式存储配置文件的情况下。


  1. 执行的位置

不要在你的项目目录内执行pyinstaller命令,至少要在项目目录的父目录执行。


  1. 导入问题

如果遇到相对导入出错的情况,可以试试用sys添加路径然后绝对导入的方式。


  1. 进一步自定义

可以在.pac文件中,对hidden_imports等选项进行编辑(我还没尝试过),该项可以让pyinstaller发现那些不是由普通import语句导入的依赖

posted @ 2025-01-25 23:30  Gold_stein  阅读(259)  评论(0)    收藏  举报