Skip to main content

QPyPack

简体中文 | English | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Русский | Português

PyPI version Python versions PyPI Downloads Platform Support
Release Date Last Commit License GitHub stars


A Modern, Cross-Platform Python Packaging GUI
Powered by PyInstaller and Nuitka, featuring visual configuration, static dependency analysis, and automated build workflows.

📌 Overview

QPyPack is a cross-platform graphical packaging tool designed for Python developers. By integrating both PyInstaller (bytecode bundling) and Nuitka (C/C++ native compilation) core engines, QPyPack abstracts low-level compiler toolchains, complex dependency tracking, sandbox isolation, and resource collection into an intuitive, reliable desktop interface.

Whether you are distributing simple automation scripts or complex enterprise applications (built with PySide6/PyQt, Playwright, CustomTkinter, FastAPI, etc.), QPyPack delivers a reproducible, high-success build experience across Windows, macOS, and Linux.


📸 Screenshots

Main Interface (English) Main Interface (Chinese) Engine & Environment
Dependency Management Optimization & Signing About & Diagnostics


🛠️ Architecture & Key Features

1. Dual-Engine Compilation & Binary Optimization

  • Dual Packaging Engines:
    • PyInstaller: Fast compilation, zero compiler dependencies, and extensive ecosystem hook compatibility.
    • Nuitka: Translates Python code into native C/C++ binaries, providing performance acceleration, compact size, and deep IP/reverse-engineering protection.
  • LTO & Submodule Pruning: Lite Mode integrates --lto=yes (Link-Time Optimization) and automatically identifies and excludes unused heavy Qt submodules (e.g., QtWebEngineCore, Qt3DCore, QtQuick, QtLocation), preventing binary size bloat.
  • Flexible Binary Distribution: Supports Single-File (--onefile) and Directory (--onedir) modes, with customizable internal asset directory paths (--contents-directory).

2. Static Dependency Analysis & Safety Net

  • Native AST Static Scanner: Recursively parses Abstract Syntax Trees (AST) across source files and folders to discover explicit and hidden imports without executing the code.
  • Package Distribution Mapper: Maps common import namespaces to their canonical PyPI distribution names (e.g., cv2 $\to$ opencv-python, PIL $\to$ pillow, win32com $\to$ pywin32), with full user customization.
  • Obsolete Backport Isolation: Automatically detects and shields legacy backport modules that conflict with modern standard libraries (e.g., isolating redundant pathlib or typing packages on Python 3.10+).

3. Toolchain Provisioning & Runtime Self-Healing

  • Automated Compiler Provisioning: Detects local MSVC, Clang (LLVM), or GCC compilers. If no native C compiler is found, Nuitka automatically provisions a managed MinGW-w64 toolchain.
  • Virtual Environment Management: Supports isolated sandboxes as well as reusable shared virtual environments, complete with a built-in clean-up utility for legacy project environments.
  • Resource-Aware Concurrency:
    • Evaluates system RAM and disk space prior to compilation, adaptively adjusting thread concurrency to prevent out-of-memory errors.
    • Recovers from memory allocation failures (ZstdError / OOM) by automatically retrying in single-threaded low-memory mode.
    • Mitigates file-locking collisions caused by antivirus software or cloud sync drives during output assembly.

4. Code Signing & Project Presets

  • Smart Code Signing: Automatically applies digital signatures to Windows binaries (supporting Signtool and PowerShell Authenticode engines with RFC 3161 timestamping) and handles macOS codesign runtime signing.
  • Certificate Suite: Includes an integrated self-signed .pfx certificate generator and supports custom commercial certificate injection.
  • Preset Import / Export: Saves complete build parameters, asset mappings, and exclusions into shareable .qpypack preset files for CI/CD and team workflows.

5. UI/UX & Global Localization

  • Drag-and-Drop Workflow: Dropping a .py/.pyw script auto-parses metadata (__version__, __author__, __title__), initializes the workspace, and maps corresponding application icons.
  • Vector UI with HiDPI Support: Built entirely with Google Material SVG vector icons with native multi-monitor DPI scaling.
  • Full Localization (i18n): Out-of-the-box support for 17 languages, including English, Simplified/Traditional Chinese, Japanese, Korean, German, French, Spanish, and Russian.

📊 Engine Comparison (PyInstaller vs. Nuitka)

Metric PyInstaller Nuitka
Mechanism Bundles Python interpreter + bytecode (.pyc) Compiles Python code to native C/C++ binaries
Build Time Fast (typically 10 – 60 seconds) Slower (requires C++ code generation & optimization)
C/C++ Compiler Not required Required (MSVC / GCC / Clang / MinGW-w64)
Source Protection Basic (can be unpacked via decompilers) High (compiled machine code; resistant to reverse engineering)
Execution Performance Standard Python runtime speed Fast startup; improved loop and compute efficiency
Ideal For Rapid prototyping, internal tools, dynamic import scripts Commercial distribution, proprietary algorithms, optimized size

⚡ Quick Start

💡 First time using QPyPack? Check out the 📖 Quickstart Guide (QUICKSTART.md) for step-by-step instructions and recommended project configurations.

Requires Python >= 3.8:

# Install QPyPack
pip install qpypack

# Launch the application
qpypack

Or run directly in an isolated environment via modern package managers:

# Using pipx
pipx run qpypack

# Using uv
uvx qpypack

Method 2: Standalone Executable

If you prefer not to install Python locally, download pre-built binary releases for Windows, macOS, or Linux:

👉 Download Standalone Release (GitHub Releases)


📋 Best Practices: Asset Resolution (sys._MEIPASS)

In Single-File mode (--onefile), bundled static assets (images, configuration files, model weights) are extracted to a temporary runtime sandbox directory. Use the following helper pattern to reliably resolve paths across development and production:

import sys
import os
from pathlib import Path

def get_asset_path(relative_path: str) -> Path:
    """Resolve asset paths across development, PyInstaller, and Nuitka."""
    if hasattr(sys, "_MEIPASS"):
        # PyInstaller temporary extraction directory
        base_path = Path(sys._MEIPASS)
    elif "__compiled__" in globals():
        # Nuitka native binary execution directory
        base_path = Path(sys.argv[0]).resolve().parent
    else:
        # Local development environment
        base_path = Path(__file__).resolve().parent
    return base_path / relative_path

📅 Changelog

For detailed release notes, new features, and bug fixes, please consult CHANGELOG.md.


💖 Contributing & Sponsorship

QPyPack is an open-source project maintained during personal time. If QPyPack has helped streamline your deployment workflow, voluntary sponsorships are warmly welcomed to support continuous development:

  • 🌟 Star the Project: Give us a star on GitHub.
  • 🐛 Feedback & Issues: Submit bug reports and feature requests via GitHub Issues.
  • ⚡ Sponsor: Support the author via Afdian (爱发电) (WeChat Pay / Alipay).

Note: Sponsorship is voluntary and serves as encouragement for open-source maintenance without commercial service commitments. Thank you for your support!


📄 License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

Copyright (C) 2026 QwejayHuang.

Metadata

Release files for qpypack 2.8.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qpypack 2.8.5
File Size Uploaded
qpypack-2.8.5.tar.gz 929.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qpypack 2.8.5
File Interpreter ABI Platform
qpypack-2.8.5-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / qpypack-2.8.5.tar.gz

Download URL qpypack-2.8.5.tar.gz
Size 929.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2d31455e0c659f59bb2ae856ae1f84596260c52ce399124c57ea324a1a47ee24
BLAKE2b-256 checksum
How to use checksums
e51747a87d05755fd35f1cf8ac46f9e3ccd4f1a1ea7827bdeb3f0c30cde1f74c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / qpypack-2.8.5-py3-none-any.whl

Download URL qpypack-2.8.5-py3-none-any.whl
Size 926.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5dd63cac5f0c7d920c620944687774fdc3cba61fd7b8d2bfaa1c8b53a7d2a822
BLAKE2b-256 checksum
How to use checksums
0ab636f520a363226095502c706b51ecf667dee1abfd1d104d27e40dd209dfc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release history Release notifications | RSS feed

2.9.1

2 release files

2.9.0

2 release files

2.8.6

2 release files

This release

2.8.5 This release

2 release files

2.8.4

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.14

2 release files

2.7.13

2 release files

2.7.12

2 release files

2.7.11

2 release files

2.7.10

2 release files

2.7.9

2 release files

2.7.8

2 release files

2.7.7

2 release files

2.7.6

2 release files

2.7.5

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.2

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.7

2 release files

2.5.6

2 release files

2.5.5

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.6

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.9

2 release files

2.3.8

2 release files

2.3.6

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page