Skip to main content

QPyPack

QPyPack 是一款基于 PyInstaller 与 Nuitka 的跨平台 Python 应用打包构建工具。它将繁琐的命令行打包流程转化为直观的可视化界面操作,无需记忆复杂的终端参数,即可高效生成原生可执行程序。

image image


核心特性

为了降低传统命令行构建的配置成本,解决多平台下环境与依赖冲突问题,QPyPack 深度整合了以下工程化辅助功能:

1. 直观的可视化交互

  • 拖放式载入(Drag & Drop):无需手动配置路径,直接将 .py.pyw 源代码文件拖放至软件窗口,系统将自动载入并准备编译。
  • 图标自动检索与适配:源程序导入后,系统会自动检索同级目录下的常用图像资产(如 icon.ico / logo.ico / icon.svg / logo.svg)进行格式适配、自动绑定与高清预览。

2. 依赖解析与虚拟环境隔离

  • 虚拟环境隔离(Virtualenv):支持一键在临时目录下创建独立的沙盒隔离环境,仅同步应用编译所需的依赖项,从而显著控制并精简最终可执行产物的体积。
  • 多维度依赖解析
    • 清单同步:自动检索并优先读取项目目录下的 requirements.txt 依赖声明。
    • AST 静态扫描:提供辅助的 AST(静态语法树)深度分析,自动提取代码中导入的第三方依赖,精准补齐隐式导入模块(Hidden Imports)。
  • 内置 PyPI 加速源:预设国内主流镜像加速源,大幅提升沙盒中拉取构建引擎与依赖库的速度。

3. 高级编译参数控制

  • 双引擎自适应切换:在图形界面上实现 PyInstaller 与 Nuitka 的灵活切换,参数面板与优化选项将根据所选引擎的特性进行自适应调整。
  • 应用元数据注入(Metadata):无需编写繁琐的规格文件,直接在界面输入版本号、公司名和产品描述,工具会自动将这些元数据注入二进制程序属性中(支持 Windows 资源区和 macOS Info.plist 写入)。
  • 附加资源可视化管理(Data Files):支持通过列表交互分别导入文件或文件夹,并支持通过双击列表直接修改打包后的相对释放路径(自适应释放路径映射)。

更新日志 (Changelog)

2.5.0

  • 安全去耦与跨平台稳定性优化:完全隔离 Windows 的 winreg 注册表静态调用,基于动态占位保障 macOS 与 Linux 等非 Windows 环境下的静态加载安全性。
  • 自适应图像格式转换引擎:引入全新的 convert_image_to_format 弹性图形转译机制。可将 SVG、PNG、JPG 等格式自动适配转换为 Windows .ico 与 macOS .icns,内置“macOS sips -> Qt QImage -> Pillow”三重安全降级备份。
  • 应用元数据精准转译与写入:在 Windows 系统下自动动态写入 VSVersionInfo 元数据,而在 macOS 平台下自动映射生成规范的 Bundle ID(如 com.company.appname),为后续的代码签名与公证提供标准数据格式。
  • 多维异构构建产物精准提炼:重构底层产物移动(Move)与重置逻辑,精准捕获并转移不同编译模式下产生的文件实体或目录包(如 Windows 的 .exe,macOS 拥有独立目录结构的 .app,以及 UNIX 无后缀二进制),杜绝旧版本跨系统提取失败的问题。
  • 依赖声明与打包规范优化:更新 pyproject.toml,补充标准 PyPI 分类器(Classifiers)及扩展项目链接(URLs),显式声明 setuptools 范围防止打包杂质,并将 Pillow 加入核心运行时依赖保障跨平台图标转译。

2.4.6

  • 跨平台兼容性适配:修复了底层进程调用中 Windows 平台专有的 creationflags 导致非 Windows 系统执行崩溃的致命异常;重构 UNIX 环境(macOS/Linux)下的 Python 解释器静态探测与虚拟沙盒环境分析器;过滤及剔除了平台特异性编译参数(如 version-file 等)。
  • UI 现代化重构与 UX 体验升级:废弃传统密集型排版,采用卡片式容器布局(Card-based Layout)。为复杂的构建参数面板引入“胶囊式子导航(Pill-Tabs)”,在功能丰富度与视觉克制力之间取得平衡;全面解决因低分辨率缩放引发的组件挤压、文本截断等视觉缺陷。
  • 多版本内核独立编译沙盒:支持全局指定或浏览任意版本的 Python 解释器(例如兼容极旧的 Python 3.5 内核),程序将在对应的专属内核沙盒中完成代码解析、依赖对齐与独立编译分发,彻底与主控宿主环境解耦。
  • 关于界面视觉重构:引入原生交互式动作行(Action Row)替代传统低质感排版,支持无缝调用系统浏览器跳转开源仓库;修复了部分 ICO 图标渲染时的抗锯齿失真问题,保证界面资产高清锐利。

2.4.5

  • 源码解析安全修复:移除了在进行依赖扫描(AST 语法树解析)和控制台防闪退代码注入时对源码换行符(CRLF 强转 LF)的干预操作,修复了由此导致的潜在多行字符串解析错误及文件破坏问题。

2.4.4

  • 附加资源可视化管理:废弃了易输错的单行文本框输入,引入列表化管理组件。支持通过图形化对话框分别添加“文件”和“文件夹”,并支持双击列表条目直接修改打包后的相对释放路径。
  • 路径解析引擎升级:配合新的可视化资源管理,重写了底层存储与引擎构建指令(--add-data)的拼接逻辑,解决了旧版本中绝对路径被错误切割的解析隐患。

2.4.3

  • 自定义依赖清单支持:新增指定依赖文件路径配置。当多个 Python 脚本放置在同一文件夹管理时,可直接为各个脚本绑定不同的依赖清单(例如 requirements1.txt),无需再频繁手动重命名。
  • 修复控制台模式下导入及资源读取异常:调整了控制台防闪退代码注入逻辑,将生成的临时入口文件限制在源脚本同级目录下,规避了原版本在系统临时文件夹编译导致本地相对导入(Import)及相对路径资源失效的错误。
  • 重构后台分析线程控制逻辑:废弃了不安全的后台线程强制终止方式(QThread.terminate()),采用解绑信号的处理机制,降低了在快速拖拽或频繁切换脚本时程序偶发的界面卡死、闪退或死锁概率。
  • 提升 Nuitka Standalone 打包兼容性:重构了 Nuitka 独立目录打包结束后的提取逻辑,改用动态扫描匹配 .dist 产物文件夹,避免因打包入口临时重命名而引发“未定位到有效产物”的构建异常。
  • 优化 SVG 图标转换容错:针对 Windows 平台下 PyInstaller 对图标格式的限制,在宿主环境缺少特定图片格式插件时,新增优雅降级与日志提示机制,预防编译器因传入不支持的格式而引发崩溃。

2.4.2

  • 编译语法异常诊断:编译失败时,系统将自动扫描并重排完整的构建日志,精准识别源码中的 IndentationErrorSyntaxErrorTabError 语法错误。
  • 精准定位错误源:解析并高亮展示发生语法错误的源文件名、行号及错误描述,区分“源码逻辑异常”与“打包工具故障”,避免混淆。

2.4.1

  • 模块化配置重构:全面重构设置面板,将参数解耦并分类为“版本信息与元数据”、“编译控制”、“资源与沙盒”、“软件设置”四大模块。
  • 自定义归档目录:支持将编译产物输出至全局指定的自定义输出目录,并支持对缺失的多级父目录进行全自动递归创建。
  • 并发编译限制:支持手动限制打包引擎并发编译时所能占用的最大 CPU 核心数,避免由于硬件满载引发设备死机。
  • 编译提示音效:引入系统级轻量化音频通知,在打包成功或发生异常中断时给予不同的声音提示。
  • 编译日志自动保存:任务结束后支持在目标输出路径自动保存运行日志(.log 格式),极大提升异常分析排查的便利性。

2.4.0

  • 控制台防闪退机制:在非 GUI 模式打包时,工具会自动在临时脚本尾部注入防闪退控制代码(针对 Windows 平台下双击运行的非交互式程序),提升用户体验。
  • 提升文件删除的鲁棒性:重构了临时目录清理机制,引入带重试延时与只读属性解除的 robust_rmtree 回收机制,减少因防病毒软件或进程占用导致清理失败的情况。
  • 云盘锁状态前置拦截:针对处于云盘同步锁定状态的文件,提供前置 I/O 异常检测,避免打包过程意外被系统挂起。
  • 完善引擎参数映射:优化 Nuitka 的插件自动加载逻辑(自适应 PyQt/PySide 家族、numpy, matplotlib, tkinter 等常见重型库),使其配置更加贴合实际运行环境。
  • 持续集成与自动发布:新增 GitHub Actions 工作流,推送版本标签自动触发 PyPI 发布,并同步编译运行包上传至 GitHub Release。

快速上手

只需三步,即可完成打包编译:

  1. 导入源文件:将您的 Python 脚本(.py.pyw)拖拽至主界面。
  2. 配置编译引擎:点击右下角设置按钮,在“编译参数”中选择您想使用的编译引擎与编译模式。
  3. 执行编译任务:返回主界面点击“开始构建”,即可在下方展开的控制台中实时查看打包进度。

运行启动

在 Python >= 3.8 环境中执行以下命令安装并启动程序:

pip install qpypack
qpypack

预编译版本下载

若不想配置 Python 环境,可直接下载打包好的独立可执行文件: 下载链接

Star History

Star History Chart

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qpypack-2.5.1.tar.gz (611.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qpypack-2.5.1-py3-none-any.whl (603.6 kB view details)

Uploaded Python 3

File details

Details for the file qpypack-2.5.1.tar.gz.

File metadata

  • Download URL: qpypack-2.5.1.tar.gz
  • Upload date:
  • Size: 611.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qpypack-2.5.1.tar.gz
Algorithm Hash digest
SHA256 510ef18e593f8f9aad822c36ad47737832cbfde95724043681010b669b00161c
MD5 6d0e5879b72e8c756d21cdabe3ff6318
BLAKE2b-256 ed55faf2ff9075f85158f2ff590c73111cbe44e2ad26798d48fb272170255d96

See more details on using hashes here.

Provenance

The following attestation bundles were made for qpypack-2.5.1.tar.gz:

Publisher: publish.yml on Qwejay/QPyPack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qpypack-2.5.1-py3-none-any.whl.

File metadata

  • Download URL: qpypack-2.5.1-py3-none-any.whl
  • Upload date:
  • Size: 603.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qpypack-2.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0dae03ffad47b22dffa42e5c9e1a98583682146d87300ea401959b4ca179f620
MD5 d18544af6ea662d096597681c0e12f9b
BLAKE2b-256 ded00120769854ca6d22662f1af564e11e04c1ba87aac1fe27121922a541d24c

See more details on using hashes here.

Provenance

The following attestation bundles were made for qpypack-2.5.1-py3-none-any.whl:

Publisher: publish.yml on Qwejay/QPyPack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.7.11

2 files

2.7.10

2 files

2.7.9

2 files

2.7.8

2 files

2.7.7

2 files

2.7.6

2 files

2.7.5

2 files

2.7.4

2 files

2.7.3

2 files

2.7.2

2 files

2.7.1

2 files

2.7.0

2 files

2.6.2

2 files

2.6.1

2 files

2.6.0

2 files

2.5.7

2 files

2.5.6

2 files

2.5.5

2 files

2.5.4

2 files

2.5.3

2 files

2.5.2

2 files

This release

2.5.1 This release

2 files

2.5.0

2 files

2.4.6

2 files

2.4.5

2 files

2.4.4

2 files

2.4.3

2 files

2.4.2

2 files

2.4.1

2 files

2.4.0

2 files

2.3.9

2 files

2.3.8

2 files

2.3.6

2 files

2.3.5

2 files

2.3.4

2 files

2.3.3

2 files

2.3.2

2 files

2.3.1

2 files

2.3.0

2 files

2.2.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page