v2.0.0: Initial core release and icon handling
This commit is contained in:
1 parent
8ab72669aa
commit
d7c79f99d7
2 files changed
+1171
-770
No files matched your search
@@ -1,79 +1,60 @@
|
||||
# PyPack
|
||||
|
||||
PyPack 是一个基于 PyQt5 开发的图形化 Python 脚本打包与构建辅助工具。它整合了 **PyInstaller**、**Nuitka** 和 **cx_Freeze** 三种主流打包引擎,旨在通过直观的 GUI 界面降低命令行打包的复杂度,并提供自动依赖分析与虚拟环境隔离等功能。
|
||||
PyPack 是一个为 Python 开发者设计的图形化打包配置工具。它将复杂的命令行打包流程(支持 **PyInstaller**、**Nuitka** 和 **cx_Freeze**)转化为直观、简易的 GUI 界面操作,无需记忆繁琐的终端命令,即可快速生成可执行文件(.exe)。
|
||||
|
||||
<img width="1203" height="1086" alt="image" src="https://github.com/user-attachments/assets/8abfbe88-b43c-442e-9f92-053bb4f1d0a1" />
|
||||
<img width="1203" height="1086" alt="image" src="https://github.com/user-attachments/assets/3b64db7b-561f-4982-91ce-4793d56ea2b8" />
|
||||
<p align="center">
|
||||
<img width="904" height="887" alt="image" src="https://github.com/user-attachments/assets/abe4c3ea-ccfe-41ab-9dd5-c99a882d69d4" />
|
||||
<img width="904" height="887" alt="image" src="https://github.com/user-attachments/assets/7a9ceed9-e070-4036-aabc-3b37bc13e036" />
|
||||
</p>
|
||||
|
||||
---
|
||||
## 核心设计:让打包变简单
|
||||
|
||||
## 主要功能
|
||||
为了解决传统命令行打包参数多、依赖易冲突、配置繁琐的问题,PyPack 2.0 围绕“易用性”进行了重新设计:
|
||||
|
||||
* **多引擎集成**:支持在界面中快速切换 PyInstaller、Nuitka 和 cx_Freeze 打包引擎。
|
||||
* **拖拽式操作**:提供支持拖放(Drag and Drop)的脚本装载区域,亦可手动浏览选择主脚本。
|
||||
* **自动依赖解析**:
|
||||
* 优先读取项目同级目录下的 `requirements.txt`。
|
||||
* 若无配置文件,则通过 Python 标准库中的 `ast` 模块静态分析脚本文件,提取第三方依赖(自动过滤标准库),同时提供基于正则表达式的备份扫描。
|
||||
* **隔离构建环境 (Venv)**:支持自动在临时目录下创建虚拟环境以隔离全局环境,降低依赖冲突的风险。
|
||||
* **自定义 PIP 镜像源**(**v1.0.1 新增**):高级选项中支持自定义设置 PIP 镜像源地址,默认提供清华大学镜像源以提升国内下载速度,修改后自动实时保存。
|
||||
* **元数据配置 (Windows)**:支持在界面配置版本号、发行公司、文件描述等元数据。对于 PyInstaller,会自动生成版本信息描述文件;对于 Nuitka,则自动映射为对应的编译器参数。
|
||||
* **多项细节优化**:
|
||||
* 支持控制台隐藏、单文件/单目录输出切换、UPX 压缩等。
|
||||
* 支持添加附加资源文件(格式为 `源路径:目标路径`),并提供交互式选择对话框。
|
||||
* 支持图标预览功能(可自动识别脚本目录下的 `icon.ico` / `logo.ico`)。
|
||||
* 采用 `QThread` 异步执行打包任务,保持 GUI 界面在打包过程中响应正常,并在日志窗口中实时输出控制台信息。
|
||||
### 1. 极简的交互流程
|
||||
* **拖拽即装载**:无需手动输入路径,直接将您的 `.py` 源代码文件拖入软件窗口,即可自动识别并准备构建。
|
||||
* **智能图标匹配**:脚本载入后,程序会自动检索同目录下的常用图标文件(如 `icon.ico` / `logo.ico`)并自动填充和预览。
|
||||
* **一键直达结果**:打包完成后,点击“打开输出目录”按钮即可自动弹出 Windows 资源管理器并定位到生成的程序。
|
||||
|
||||
### 2. 自动化的依赖与环境处理
|
||||
* **智能沙盒隔离 (Venv)**:支持一键开启虚拟环境。工具会在临时目录下自动创建干净的沙盒环境,仅安装打包所需的库,有效减小最终生成的 `.exe` 文件的体积。
|
||||
* **多维度依赖扫描**:
|
||||
* 自动检测并优先读取项目目录下的 `requirements.txt`。
|
||||
* 提供辅助的 AST(静态语法树)扫描选项,自动分析代码中导入的第三方模块,帮助您查漏补缺隐式依赖。
|
||||
* **内置国内加速源**:预设清华大学等国内 PIP 镜像源,在沙盒中拉取打包工具或依赖库时自动加速。
|
||||
|
||||
### 3. 可视化高级参数配置
|
||||
* **三引擎无缝切换**:在下拉菜单中即可在 PyInstaller、Nuitka 和 cx_Freeze 之间切换,相关的参数输入框会根据引擎特性自动启用或隐藏。
|
||||
* **可视化版本属性**:无需编写复杂的版本配置文件,直接在界面文本框中输入版本号、公司名和产品描述,工具会自动将其写入生成的 `.exe` 元数据中。
|
||||
* **直观的资源添加**:通过交互式对话框选择需要打包的图片、数据文件夹,自动生成跨平台兼容的路径映射。
|
||||
|
||||
---
|
||||
### Changelog
|
||||
2.02
|
||||
* 增加建构失败动画
|
||||
* 尝试修复打包后容易被WINDOWS安全拦截的问题
|
||||
|
||||
# 更新日志 (Changelog)
|
||||
### [1.0.2] - 2026-06-3
|
||||
* **更新子进程处理机制,并改进数据处理以提升兼容性。
|
||||
* **隐藏打包过程中的命令窗口。
|
||||
|
||||
### [1.0.1] - 2026-05-31
|
||||
#### 新增
|
||||
* **自定义 PIP 镜像源**:在“高级选项”界面中引入了 PIP 镜像源输入配置,默认使用清华大学开源软件镜像源(`https://pypi.tuna.tsinghua.edu.cn/simple`)。
|
||||
* **配置即时持久化**:PIP 镜像源输入支持修改即时生效,并利用 `QSettings` 自动存储于注册表/配置文件中,下次启动应用时自动读取。
|
||||
|
||||
#### 优化
|
||||
* **构建逻辑统一**:优化了虚拟环境(Venv)初始化、打包引擎下载以及项目依赖解析时的命令行拼接逻辑,统一走用户配置的自定义 PIP 镜像源。
|
||||
|
||||
---
|
||||
## 运行环境
|
||||
|
||||
* **操作系统**:Windows
|
||||
* **Python 版本**:Python 3.x
|
||||
* **核心依赖**:
|
||||
* `PyQt5`
|
||||
* (根据选择的打包引擎)`pyinstaller` / `nuitka` / `cx_Freeze` / `pillow`
|
||||
|
||||
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 文件保存为 `main.py`。
|
||||
只需三步,即可完成打包:
|
||||
|
||||
### 2. 安装运行所需的必要依赖
|
||||
在运行该工具前,您需要先安装 `PyQt5`:
|
||||
```bash
|
||||
pip install PyQt5
|
||||
```
|
||||
1. **拖入脚本**:将您的 Python 脚本拖拽至主界面。
|
||||
2. **选择引擎**:点击右下角设置,在“基础打包”中选择您想使用的引擎(推荐默认的 PyInstaller 进行快速验证)。
|
||||
3. **开始构建**:返回主界面点击“开始构建”,并在下方展开的控制台中实时查看打包进度。
|
||||
|
||||
### 3. 启动应用
|
||||
执行以下命令启动图形化界面:
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
---
|
||||
|
||||
### 或者使用打包好的二进制文件直接运行
|
||||
[GitHub Releases 下载链接](https://github.com/Qwejay/PyPack/releases)
|
||||
## 系统要求
|
||||
|
||||
### 4. 打包您的项目
|
||||
1. **装载脚本**:将需要打包的 `.py` 文件拖拽至上方的拖拽区,或者点击主界面的“浏览...”按钮进行选择。
|
||||
2. **配置选项**:
|
||||
* 选择您要使用的**构建引擎**。
|
||||
* 根据需要调整**打包选项**(如是否开启虚拟环境、是否单文件输出、是否隐藏控制台等)。
|
||||
* 如有需要,在“高级选项”选项卡中配置 **PIP 镜像源**、隐式依赖、附加资源和版本元数据。
|
||||
3. **开始构建**:点击右下角的**“开始构建”**。下方日志窗口会实时更新编译进度。
|
||||
4. **提取产物**:构建成功后,点击“打开输出目录”按钮即可直达打包好的可执行文件位置。
|
||||
* **支持系统**:Windows (推荐), macOS, Linux
|
||||
* **Python 环境**:Python 3.8+
|
||||
* **基础依赖**:只需在您的本地系统提前安装好 `PyQt5` 即可运行:
|
||||
```bash
|
||||
pip install PyQt5
|
||||
Reference in new issue
Block a user