What is PyCrucible?

Developer tool to embed (package) python applications into a single binary.

How does it work?

When you run PyCrucible (with --embed (or -e) flag), it will take your project, its dependencies declaration, and package them up into a .zip archive.

It will also search your system for an executable called uv .
This is the python dependency manager that PyCrucible uses to bootstrap python and its dependencies on runtime (when running the embedded project).
If it cannot find uv it will download the latest release.
This will also be added into the final executable.

When the embedding process is done, you get a single executable, that embeds your python project and uv into a single binary (executable, exe, whatever you want to call it).

You can then deploy to any machine with internet access an it will be able to run your python application.

Be sure to embed your application on the platform you are planning to deploy on.
Cross-platform embedding is not supported !

Features

  • Cross-Platform:

    • Windows support

    • macOS support

    • Linux support

  • Configurable:

    • Use pycrucible.toml or pyproject.toml to customize embedding details

    • Support for multiple ways of defining requirements (pyproject.toml, requirements.txt, pylock.toml, setup.py, setup.cfg)

  • Tests:

    • Unit tests cover configuration, extraction, and hook execution
  • Source Update:

    • Initiate an update of source code pulling from GitHub

Installation

Go to Installation section of the docs. Click here.

Usage

Go to Usage section of the docs. Click here.

Configuration

Configuration is optional. If you want to customize the aspects of embedding process, go to Configuration section of the docs. Click here.

Thanks to

Inspired by:

Packaged

packaged lets you create a standalone executable from any Python project.

It will package your project and all its dependencies, to produce a single, portable executable.

To learn more about packaged click here.


Built with the help of:

uv

An extremely fast Python package and project manager, written in Rust.

To learn more about uv click here.

Updated on