Files
QPyPack/README.md
T

152 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# QPyPack
<p align="center">
<a href="README.md">简体中文</a> |
<a href="README_EN.md">English</a> |
<a href="docs/readme/README_TW.md">繁體中文</a> |
<a href="docs/readme/README_JA.md">日本語</a> |
<a href="docs/readme/README_KO.md">한국어</a> |
<a href="docs/readme/README_FR.md">Français</a> |
<a href="docs/readme/README_DE.md">Deutsch</a> |
<a href="docs/readme/README_ES.md">Español</a> |
<a href="docs/readme/README_RU.md">Русский</a> |
<a href="docs/readme/README_PT.md">Português</a>
</p>
<p align="center">
<!-- PyPI Version -->
<a href="https://pypi.org/project/qpypack/">
<img src="https://img.shields.io/pypi/v/qpypack.svg?color=blue&logo=pypi&logoColor=white" alt="PyPI version" />
</a>
<!-- Python Versions -->
<a href="https://pypi.org/project/qpypack/">
<img src="https://img.shields.io/pypi/pyversions/qpypack.svg?logo=python&logoColor=white" alt="Python versions" />
</a>
<!-- PyPI Downloads -->
<a href="https://pypistats.org/packages/qpypack">
<img src="https://img.shields.io/pypi/dm/qpypack?color=orange&logo=pypi&logoColor=white" alt="PyPI Downloads" />
</a>
<!-- Supported Platforms -->
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-informational" alt="Platform Support" />
<br>
<!-- Release Date -->
<a href="https://github.com/Qwejay/QPyPack/releases">
<img src="https://img.shields.io/github/release-date/Qwejay/QPyPack?color=brightgreen&logo=github" alt="Release Date" />
</a>
<!-- Last Commit -->
<a href="https://github.com/Qwejay/QPyPack/commits/main">
<img src="https://img.shields.io/github/last-commit/Qwejay/QPyPack" alt="Last Commit" />
</a>
<!-- GitHub License -->
<a href="https://github.com/Qwejay/QPyPack/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/Qwejay/QPyPack.svg" alt="License" />
</a>
<!-- GitHub Stars -->
<a href="https://github.com/Qwejay/QPyPack/stargazers">
<img src="https://img.shields.io/github/stars/Qwejay/QPyPack.svg?logo=github&color=gold" alt="GitHub stars" />
</a>
</p>
---
<h2 align="center">
🚀 <i>“只需拖入 Python 代码,剩下的交给 QPyPack!”</i>
</h2>
<p align="center">
<sub><strong>Drag, drop, and build — QPyPack takes care of the rest!</strong></sub>
</p>
## 💡 QPyPack 是什么?
QPyPack 是一款现代化的跨平台 Python 打包工具。它深度整合 **PyInstaller** 与 **Nuitka** 双核心打包引擎,将极其繁琐复杂的终端命令行参数与环境配置,转化为极简、直观、高成功的图形界面体验。
无论你是打包简单的脚本工具,还是包含复杂依赖(如 PySide/PyQt, Playwright, CustomTkinter, MoviePy 等)的项目,QPyPack 都能助你轻松生成纯净、高效的跨平台原生可执行文件。
---
## 🌟 为什么选择 QPyPack?
* **告别噩梦般的命令行**:无需再记忆繁琐的 `--hidden-import`、`--add-data` 路径分隔符和参数格式。
* **零门槛 C/C++ 编译器集成**:自动嗅探本地 MSVC、Clang 或 GCC 环境;缺失时免交互自动托管下载 MinGW-w64 工具链,无需手动配置环境变量。
* **告别运行时 `ModuleNotFoundError`**:首创“三重依赖安全网”(Requirements + 原生 AST 语法树扫描 + pipreqs),精准补全隐式依赖。
* **告别打包崩溃与中间死锁**:自动评估物理内存,自带内存溢出(OOM)自愈重试、杀软图标锁定剥离重构建及 Temp 防锁沙盒。
---
## 📷 界面预览 (Screenshots)
<p align="center">
<img width="32%" alt="主界面英文预览" src="https://github.com/user-attachments/assets/9d16c68e-d283-4020-86c1-9d4791756c29" />
<img width="32%" alt="主界面中文预览" src="https://github.com/user-attachments/assets/0147460d-1e9e-4612-9b52-9d347d81b7c5" />
<img width="32%" alt="设置面板预览" src="https://github.com/user-attachments/assets/0ad4db6d-b008-4018-bd69-40a369a10b7d" />
<br />
<img width="32%" alt="依赖管理预览" src="https://github.com/user-attachments/assets/c7fd1218-d079-4898-a97c-aa980c4d1375" />
<img width="32%" alt="高级优化预览" src="https://github.com/user-attachments/assets/e5b7500e-2a0d-4c6d-b20b-7d8d2d3bac8d" />
<img width="32%" alt="关于页面预览" src="https://github.com/user-attachments/assets/e652b222-49f5-44cd-ad3f-d93369ede26b" />
</p>
---
## 🚀 核心特性 (Key Features)
- ✨ **极组拖拽,即刻启程**:拖入 `.py` 或 `.pyw` 源代码,全自动完成应用元数据解析、工作区初始化与图标匹配。
- 🐍 **Python 环境智能管理**:内置 Python 环境管理弹窗,支持本地多版本平滑切换,无 Python 环境时支持从官方/国内镜像源**一键自动下载安装与配置**。
- ⚙️ **双打包引擎与多元模式**:
- 支持 **PyInstaller**(构建迅速,兼容性优异)与 **Nuitka**(编译为原生 C/C++,体积小、运行快、强抗反编译)双引擎自由切换。
- 支持 **单文件 (`--onefile`)** 与 **文件夹 (`--onedir`)** 模式,可自定义内部依赖资源目录 (`--contents-directory`)。
- 🔍 **C/C++ 编译器智能托管**:优先调用本地 MSVC、Clang (LLVM) 或 GCC;未检测到本地编译器时,由 Nuitka 自动托管下载兼容的 MinGW-w64 编译器。
- 🛡️ **原生 AST 三重依赖防护**:融合 `requirements.txt`、原生 **AST 静态语法树递归扫描** 与环境安装包映射,智能捕获所有隐式导入(Hidden Imports)。
- 📦 **复杂第三方库零配置预设**:内置对 `ttkbootstrap`、`customtkinter`、`playwright`、`moviepy` 等高频报错/遗漏资源库的自动 Hooks 拦截与资源收集(支持 Playwright 镜像加速)。
- 🛡️ **防锁沙盒与自愈机制**:构建前物理资源评估,捕获内存溢出(OOM/ZstdError)自动降低并发重试,支持 Temp 目录防锁隔离,解决 OneDrive/杀软锁文件导致的构建中断。
- 🎨 **纯矢量 UI & 多语言支持**:全界面基于 Google Material SVG 矢量图标,完美适配高分屏缩放;原生支持中、英、日、韩、德、法等全球多语言无缝切换。
---
## ⚡ 快速上手 (Quick Start)
> 💡 **新手初次使用?** 建议阅读 3 分钟 [**📖 快速入门指南 (QUICKSTART.md)**](QUICKSTART.md) 了解完整的图文打包流程与常见场景配置推荐。
### 方法一:通过 pip 安装并运行 (推荐)
在 Python >= 3.8 的环境中,执行以下命令进行安装与启动:
```bash
# 安装 QPyPack
pip install qpypack
# 启动程序
qpypack
```
### 方法二:下载独立二进制免安装版
如果您不想配置本地 Python 环境,可直接在 GitHub Release 页面下载对应系统的预编译打包版本:
👉 [下载预编译版本 (GitHub Releases)](https://github.com/Qwejay/QPyPack/releases)
---
## 📅 更新日志 (Changelog)
完整的版本更新历史与 Release 说明请参阅 [CHANGELOG.md](CHANGELOG.md) 或 [GitHub Releases 页面](https://github.com/Qwejay/QPyPack/releases)。
---
## 💖 赞助支持 (Sponsorship)
QPyPack 是一款完全开源且免费的项目,由作者利用业余时间开发与维护。如果本项目帮助您提高了开发效率或解决了打包难题,欢迎通过以下方式对项目进行**自愿赞助**。您的支持将是本项目持续更新的重要动力:
- ⚡ **请作者喝奶茶*:[赞助支持 QPyPack](https://www.ifdian.net/a/qwejay)(支持微信 / 支付宝)
> **赞助说明**:赞助完全出于自愿,属于对开源项目的无偿鼓励,不包含任何商业服务绑定或特定功能开发承诺。非常感谢每一位支持开源创作的朋友!
---
## 📄 开源协议 (License)
本项目基于 [GNU General Public License v3.0](LICENSE) 开源,允许在遵循协议条款的前提下自由分发、修改和二次开发。
> [!NOTE]
> **关于打包产物的版权**:
> 使用 QPyPack 构建生成的二进制文件/应用程序,其版权和开源许可**完全由使用者自行决定**,QPyPack 的 GPL-3.0 协议不会约束或影响用户打包后的程序。
<p align="right">Copyright (C) 2026 QwejayHuang.</p>