图形化打包Python程序,还能加密+授权一步到位
图形化打包Python程序,还能加密+授权一步到位
每次打包Python程序都要查PyInstaller参数?
--onefile还是--onedir?--add-data的路径分隔符是;还是:?今天教你一套图形化方案,打包+加密+授权,全程不碰命令行。
🖥️ 图形化打包,所见即所得
原生PyInstaller的痛
用PyInstaller打包,你需要:
pyinstaller --onefile --noconsole --name MyApp --icon logo.ico \ --add-data "data;data" --hidden-import PySide6.QtCore \ --hidden-import PySide6.QtGui --hidden-import PySide6.QtWidgets \ myapp.py参数记不住?路径写错?隐藏导入漏了?控制台关不掉?图标不显示?
这些问题在图形化界面面前,统统不存在。
工具内置打包器
Python程序加密打包工具 v4.0内置完整的PyInstaller打包配置界面:
脚本设置
- 支持文件选择和拖拽
- 自动识别脚本文件名作为默认程序名
Python环境管理
- 自动检测系统Python(打包模式下也能正确检测)
- 内置便携版Python环境(3.8~3.14可选下载)
- 支持手动指定Python路径(兜底方案)
- 一键安装PyInstaller和缺失依赖
打包模式
- 单文件模式(--onefile):生成单个EXE,方便分发
- 单目录模式(--onedir):启动更快,适合大型项目
控制台设置
- 显示控制台(--console):调试用,可看print输出
- 隐藏控制台(--noconsole):正式发布,无黑框
程序配置
- 自定义程序名称
- 自定义图标(.ico)
- 附加数据文件(--add-data)
- 隐藏导入模块(--hidden-import)
实时命令预览
- 所有配置变更实时生成完整的PyInstaller命令
- 方便核对,也能复制出来手动执行
📦 便携版Python环境:不依赖系统安装
为什么需要便携版?
系统Python环境千差万别:
- 用户电脑没装Python → 打包失败
- 用户Python版本不兼容 → 打包后运行报错
- 用户环境装了一堆冲突包 → 打包异常
- 多个项目需要不同Python版本 → 切换麻烦
便携版Python环境解决所有问题。
工具内置的便携版管理
内置版本:
| 版本 | 状态 | 说明 |
|---|---|---|
| Python 3.8 | 需下载 | 兼容老项目 |
| Python 3.9 | 需下载 | 主流稳定 |
| Python 3.10 | 需下载 | 主流稳定 |
| Python 3.11 | 需下载 | 性能提升 |
| Python 3.12 | 需下载 | 开箱即用 |
| Python 3.13 | 已内置 | 最新稳定 |
| Python 3.14 | 需下载 | 最新预览 |
一键操作:
- 下载环境:自动下载官方嵌入式包并配置pip
- 安装PyInstaller:一键安装到便携版环境
- 兼容性测试:在选定环境中试运行脚本,提前发现问题
- 自定义环境:添加本地已有的Python环境,保存配置复用
打包模式下的Python检测
v4.0修复了一个关键问题:打包模式下sys.executable指向打包后的EXE本身而非系统Python。
工具采用四重检测策略:
where python命令查找系统PATH中的Pythonpy -0p命令查找Python Launcher安装的版本- 检查常见安装路径(
%LOCALAPPDATA%\Programs\Python等) - 查询注册表(
HKLM\SOFTWARE\Python\PythonCore)
同时提供手动指定Python路径的兜底方案,确保任何环境下都能找到可用的Python。
🔒 加密 + 打包,一步到位
传统流程 vs 工具流程
传统流程(3步):
1. PyInstaller打包 → 生成EXE 2. 用加密工具加密EXE → 生成加密EXE 3. 生成激活码 → 发给用户工具流程(2步):
1. 加密源码 → 生成加密脚本/加密EXE 2. (可选)内置打包器打包 → 生成加密EXE 生成激活码 → 发给用户或者更简单:
1. 加密源码时直接生成可分发的加密文件 2. 用户运行 → 激活 → 使用两种加密模式
Python源文件加密
加密后的.py文件包含:
- 加密的原始源码(XOR加密 + Base64编码)
- 完整的激活验证模块
- 许可证存储管理(文件 + 注册表双重存储)
- 过期监控线程
- 激活界面(PySide6 GUI)
- 试用功能(如启用)
用户运行时无需安装任何额外依赖(PySide6已包含在加密文件依赖中)。
EXE可执行文件加密
将已打包的EXE加密后嵌入新的启动器EXE:
原始EXE → XOR加密 → Base64编码 → 嵌入启动器 ↓ 用户运行启动器 ↓ 验证激活码 → 解密 → 释放到缓存 → 运行原始EXE启动器特点:
- 使用预制解密器(decrypt_viewer.exe)模板,打包速度快
- 支持自定义图标和Logo
- 支持自定义激活提示文字
- 释放的临时EXE运行后自动清理
- 支持试用功能
🎯 过期监控:到期自动关闭
v4.0的过期监控机制确保授权到期后程序无法继续使用:
PY程序(打包后):
- 后台守护线程智能检测
- 到期后清除许可证 →
os._exit(0)彻底退出 - 用户下次运行自动进入激活界面
EXE程序:
- 启动器进程保持存活,监控子进程
- 到期后
taskkill /F /T强制终止被加密EXE整个进程树 - 设置清理标志 → 重启新进程 → 清除缓存 → 进入激活界面
- 确保被加密应用完全退出后再清理,避免文件占用
智能检查间隔:
剩余 > 12小时 → 每2小时检查 剩余 1~12小时 → 每小时检查 剩余 10分~1小时 → 每10分钟检查 剩余 < 10分钟 → 每分钟检查既不浪费资源,又确保到期即时响应。
🎨 自定义品牌形象
Logo图标
- 加密时可指定自定义Logo(.ico格式)
- Logo会嵌入到加密文件中
- 运行时释放到缓存目录
- 激活界面、程序窗口都会显示你的品牌Logo
激活提示文字
- 支持自定义激活界面的提示文字
- 引导用户联系你获取激活码
- 可放置联系方式、购买链接等
程序图标
- 加密EXE时支持自定义程序图标
- 打包时可指定图标文件
- 未指定时自动查找同目录下的logo.ico
📋 打包配置最佳实践
单文件 vs 单目录
| 特性 | 单文件(--onefile) | 单目录(--onedir) |
|---|---|---|
| 分发便利性 | ✅ 一个文件搞定 | ❌ 需打包整个目录 |
| 启动速度 | ❌ 每次需解压 | ✅ 直接运行 |
| 文件大小 | 相同 | 相同(分散到多文件) |
| 适用场景 | 小工具、分发给用户 | 大型项目、内部使用 |
常见问题排查
打包后运行闪退
- 开启控制台模式重新打包,查看错误信息
- 使用兼容性测试功能,提前在便携版环境中试运行
缺少模块
- 在"隐藏导入"中添加缺失的模块名
- 工具会自动检测脚本的import语句并提示安装
图标不显示
- 确保图标文件为.ico格式
- 图标文件放在源文件同目录
杀毒软件误报
- 单文件模式更容易被误报
- 尝试使用单目录模式
- 使用代码签名证书签名EXE
🔄 完整工作流示例
场景:开发并销售一款Python工具
Step 1: 开发完成 └── myapp.py + logo.ico Step 2: 加密 ├── 打开"程序加密"标签页 ├── 选择 myapp.py ├── 应用名称: "MyApp Pro" ├── 加密Key: "MySecret2024!" ├── 开启试用: 2小时 ├── 自定义Logo: logo.ico └── 点击加密 → 生成 myapp_encrypted.py Step 3: 打包(可选) ├── 打开"程序打包"标签页 ├── 选择 myapp_encrypted.py ├── 选择Python环境 ├── 模式: 单文件 + 隐藏控制台 ├── 程序名: MyApp ├── 图标: logo.ico └── 点击打包 → 生成 MyApp.exe Step 4: 分发 └── 将加密文件/EXE发给用户 Step 5: 用户激活 ├── 用户运行程序 → 试用2小时 ├── 试用到期 → 弹出激活界面 ├── 用户发送机器码给你 ├── 你用密钥生成器生成激活码 └── 用户输入激活码 → 正常使用打包不难,难的是打包的同时还能加密和管授权。
Python程序加密打包工具 v4.0 — 加密、打包、授权,一气呵成。
