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语句导入的依赖

本文作者:Gold_stein

本文链接:https://www.cnblogs.com/smartljy/p/18691360

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Gold_stein  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 逃离地面 RAD & 三浦透子
逃离地面 - RAD & 三浦透子
00:00 / 00:00
An audio error has occurred.

作词 : 野田洋次郎

作曲 : 野田洋次郎

空飛ぶ羽根と引き換えに 繋ぎ合う手を選んだ僕ら

それでも空に魅せられて 夢を重ねるのは罪か

夏は秋の背中を見て その顔を思い浮かべる

憧れなのか、恋なのか 叶わぬと知っていながら

重力が眠りにつく 1000年に一度の今日

太陽の死角に立ち 僕らこの星を出よう

彼が眼を覚ました時 連れ戻せない場所へ

「せーの」で大地を蹴って ここではない星へ

行こう

もう少しで運命の向こう もう少しで文明の向こう

もう少しで運命の向こう もう少しで

夢に僕らで帆を張って 来たるべき日のために夜を超え

いざ期待だけ満タンで あとはどうにかなるさと 肩を組んだ

怖くないわけない でも止まんない

ピンチの先回りしたって 僕らじゃしょうがない

僕らの恋が言う 声が言う

「行け」と言う