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
orpyproject.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.