cx-Freeze
Create standalone executables from Python scripts
What it is and what it does
cx_Freeze is a tool that transforms Python scripts into standalone executables, eliminating the need for end users to have Python installed. It works across Windows, macOS, and Linux, preserving the original script's performance while bundling dependencies and the Python runtime into a single distributable binary.
The package integrates with setuptools and relies on platform-specific binary manipulation tools (patchelf, dmgbuild, lief) to handle the low-level work of creating native executables. It's designed for developers who need to ship Python applications as self-contained programs, particularly useful for service applications, command-line tools, or desktop software where users expect a traditional executable rather than a Python installation.
Use it for:
- Package a command-line tool written in Python as a single executable for distribution to users without Python.
- Create cross-platform desktop applications from Python code that run on Windows, macOS, and Linux.
- Build service executables that can be installed and run as system services or daemons.
- Distribute Python applications through standard package managers that expect native binaries.
- Protect source code by compiling Python scripts into executables that are harder to reverse-engineer than .py files.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
cx_Freeze converts Python scripts into standalone executables that run with the same performance as the original scripts, supporting cross-platform deployment.
Yes. cx_Freeze is actively maintained, has no known vulnerabilities, uses a permissive license, and solves a real problem—shipping Python applications as standalone executables. It's well-suited if you need cross-platform executable generation. The 9 runtime dependencies and requirement for Python 3.10 or later are reasonable trade-offs for the functionality provided.
Install
cx-freeze on PyPI
pip
pip install cx-freezeuv
uv add cx-freezepoetry
poetry add cx-freezeInstalling cx-Freeze
Before you install
Low install friction with a pure-wheel distribution. Active maintenance with recent commits and a stable codebase. Requires Python 3.10 or later and pulls in 9 runtime dependencies including platform-specific tools like patchelf, dmgbuild, and lief for binary manipulation.
License in practice
Licensed under PSF-2.0 (Python Software Foundation License), a permissive license that allows commercial and private use with minimal restrictions, making it safe for most deployment scenarios.
Quickstart
pip install cx_Freeze
from cx_Freeze import setup
setup(
name="myapp",
version="0.0",
description="My application",
executables=[Executable("myapp.py")]
)
Requires Python 3.10 or later; platform-specific binary tools (patchelf on Linux, dmgbuild on macOS) must be available in the system environment.
Verify before relying
- Exact behavior differences between frozen executables and original scripts under specific conditions.
- Performance overhead or size characteristics of generated executables compared to alternatives.
- Compatibility with other packaging tools for migration scenarios.
Package facts
| License | PSF-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — freeze-core, packaging, setuptools, tomli, filelock, patchelf, dmgbuild, lief, python-msilib |
| Maintenance | actively maintained — 123 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 240,152/month — #8,910 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cx_freeze-8.6.4-py3-none-any.whl
Keywords: cx-freeze, cxfreeze, cx_Freeze, freeze, python
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
freeze-corefreeze-core provides core runtime support for…
permissive · top 15,000 on PyPI
pexPex generates standalone, executable Python…
permissive · top 5,000 on PyPI
python-msilibReads and writes Microsoft Installer (.msi)…
permissive · top 15,000 on PyPI
auto-py-to-exeProvides a graphical interface to convert…
permissive · top 15,000 on PyPI
cmakeDistributes CMake 4.4.2 as a Python package,…
permissive · top 5,000 on PyPI
pyinstxtractor-ngExtracts Python bytecode and resources from…
copyleft · top 15,000 on PyPI
pyshortcutsCreates desktop and Start Menu shortcuts for…
permissive · top 15,000 on PyPI
pyinstallerPyInstaller bundles a Python application and…
copyleft · top 5,000 on PyPI
jdk4pyBundles a JDK runtime into a Python package,…
copyleft · top 15,000 on PyPI
find-exeFinds executables on the system matching…
unclear · top 15,000 on PyPI