# QPyPack QPyPack 是一个为 Python 开发者设计的图形化打包配置工具。它将复杂的命令行打包流程转化为直观、简易的 GUI 界面操作,无需记忆繁琐的终端命令,即可快速生成可执行文件。

image image

--- ## 核心设计:让打包变简单 为了解决传统命令行打包参数多、依赖易冲突、配置繁琐的问题,QPyPack 围绕“易用性”与“官方最佳实践”进行了深度设计: ### 1. 极简的交互流程 * **拖拽即装载**:无需手动输入路径,直接将您的 `.py` 源代码文件拖入软件窗口,即可自动识别并准备构建。 * **智能图标匹配**:脚本载入后,程序会自动检索同目录下的常用图标文件(如 `icon.ico` / `logo.ico`)并自动填充和预览。 * **一键直达结果**:打包完成后,点击“打开输出目录”按钮即可自动弹出资源管理器并定位到生成的程序。 ### 2. 自动化的依赖与环境处理 * **智能沙盒隔离 (Venv)**:支持一键开启虚拟环境。工具会在临时目录下自动创建干净的沙盒环境,仅安装打包所需的库,有效减小最终生成的 `.exe` 文件的体积。 * **多维度依赖扫描**: * 自动检测并优先读取项目目录下的 `requirements.txt`。 * 提供辅助的 AST(静态语法树)扫描选项,自动分析代码中导入的第三方模块,帮助您查漏补缺隐式依赖。 * **内置国内加速源**:预设清华大学等国内 PIP 镜像源,在沙盒中拉取打包工具或依赖库时自动加速。 ### 3. 可视化高级参数配置 * **双引擎无缝切换**:在下拉菜单中即可在 PyInstaller 和 Nuitka 之间灵活切换,相关的参数输入框与高级选项会根据所选引擎特性自动启用或隐藏。 * **可视化版本属性**:无需编写复杂的版本配置文件,直接在界面文本框中输入版本号、公司名和产品描述,工具会自动将其写入生成的 `.exe` 元数据中,提升系统识别度。 * **直观的资源添加**:通过交互式对话框选择需要打包的图片、数据文件夹,引擎会自动进行跨平台兼容的路径映射与资源封装。 --- ### Changelog **2.3.0** * **UI框架重构**:由 PyQt5 升级至 PySide6。优化了现代高分屏(High-DPI)下的文字与图标缩放表现。 * **精简架构**:移除 `cx_Freeze` 打包引擎,专注打磨更现代、更高效的 PyInstaller 与 Nuitka 双核心引擎。 * **Nuitka 官方最佳实践深度集成**: * 单文件 (`--onefile`) 模式下,强制启用 `zstandard` 核心压缩环境,大幅优化产物体积与解压启动性能。 * 全局引入 `anti-bloat` 防膨胀插件,智能拦截并避免 `pytest`、`IPython` 等无用巨大依赖被误打包。 * 新增对 `tkinter` 官方探针的自动识别与插件激活。 * 重构附加资源打包逻辑,引擎将自动探测目标类型,严格区分并适配单文件 (`--include-data-files`) 与文件夹 (`--include-data-dir`) 打包规范。 * **PyInstaller 深度优化**: * 移除过时的强制 PyQt 隐藏导入逻辑,交由现代 Hook 自动完美处理。 * 彻底修复附加资源在跨平台构建时的路径分隔符 (`os.pathsep`) 匹配与切割异常问题。 **2.2.0** * 更名为 QPyPack,规范目录结构 for PyPI,优化内部沙盒与临时文件命名规范。 * 超时守护 (Watchdog):引入看门狗机制,为关键打包步骤设置超时限制,防止因网络问题导致构建无限期挂起。 * 依赖推导优化:pipreqs 原生支持国内镜像站重定向加速,并增加 15 秒超时自愈,失败时自动降级为本地纯静态 AST 解析。 * 智能命名输出:自动解析脚本版本,预设输出文件名为 `{Name}_{Version}` 格式(例如:QPyPack_2.2.0.exe)。 * 编译兼容扩展:Nuitka 编译模式新增对 PyQt6、PySide、NumPy、Matplotlib 等常用插件的自适应识别。 * 细节打磨:改进日志高频刷新滚动体验,优化版本信息元数据抓取退级逻辑。 **2.1.0** * Nuitka 单文件打包解压路径修改为 `%LOCALAPPDATA%`。 * 增加构建失败的 UI 动画反馈。 * 尝试修复打包后容易被 Windows 安全中心误报拦截的问题。 **2.0.1** * 修正 Nuitka 参数传递方式:将 `cmd.extend(["--include-data-files", "src=dest"])` 修改为更符合 Nuitka 规范的单参数追加形式:`cmd.append(f"--include-data-files={src}={dest}")`。 * 加入平台感知后缀:动态识别操作系统(Windows 使用 `.exe` 后缀,而 macOS/Linux 不使用),避免跨平台定位产物失败。 * 安全过滤平台专有参数:对于 Windows 特有的元数据写入(如公司名称、描述、文件版本、ICO 图标),只有当 `os.name == "nt"` 时才追加对应指令。 --- ## 快速上手 只需三步,即可完成打包: 1. **拖入脚本**:将您的 Python 脚本拖拽至主界面。 2. **选择引擎**:点击右下角设置,在“基础打包”中选择您想使用的引擎(推荐默认的 PyInstaller 进行快速验证)。 3. **开始构建**:返回主界面点击“开始构建”,并在下方展开的控制台中实时查看打包进度。 --- ### 启动应用 在 Python >=3.8 环境中执行以下命令启动程序: ```bash pip install qpypack qpypack ``` ### 预编译版本下载 若不想配置 Python 环境,可直接下载打包好的独立可执行文件: [GitHub Releases 下载链接](https://github.com/Qwejay/PyPack/releases)