1 file was added to this release more than 14 days after its initial publication. Inspect the release files before installing.
Frigobar
Distribute Python scripts to Windows machines without freezing them.
Basic usage
frigobar my_script.py
This will create a frigobar folder, with a my_script.bat file in it. Run it to run your app.
Installation
pip install frigobar
Options
> frigobar --help
usage: cli.py [-h] [-r REQUIREMENTS_FILE] [-p PYTHON_VERSION] [-t TIMESTAMP] [--copy-directory] script-path [target-directory]
Distribute Python scripts to Windows machines without freezing them. The resulting distribution will be put in a folder that can be copied to any Windows machine. Users should run "<script_name>.bat" to run the
script. All the dependencies, including a standalone build of Python, will be downloaded on the first run.
positional arguments:
script-path Path to the script to distribute.
target-directory Folder where the distribution will be put. Defaults to 'frigobar'.
options:
-h, --help show this help message and exit
-r REQUIREMENTS_FILE, --requirements-file REQUIREMENTS_FILE
Path to a requirements file that lists the dependencies of the script. Defaults to'requirements.txt'.
-p PYTHON_VERSION, --python-version PYTHON_VERSION, --python PYTHON_VERSION
Python version, in X.Y.Z format, that the distribution should use. The version must be available on https://github.com/astral-sh/python-build-standalone/releases. Defaults to 3.13.11.
-t TIMESTAMP, --timestamp TIMESTAMP
Release timestamp (YYYYMMDD format) for the Python build. Check https://github.com/astral-sh/python-build-standalone/releases for available dates. Defaults to 20251205.
--copy-directory Copy the contents of the script directory to the distribution.
Rationale
A common technique to distribute Python apps is to "freeze" them using tools like PyInstaller or cx_Freeze. These freezers create a standalone executable that contains your app and all its dependencies. This is a workable solution, but it has two main drawbacks:
- The resulting frozen app is often huge. It's not uncommon to see a simple app taking MBs of space.
- Because dependence resolution is hard, the frozen app may contain more or less dependencies than it needs. Less dependencies lead to dread "working-app-that-stop-working-when-you-freeze-it" situations. Unnecessary dependencies lead to bloated apps.
Frigobar avoids those problems by postponing the download of the Python interpreter and all the app's dependencies to the first time the user runs the app, making the app the smallest it can be. Frigobar also doesn't try to be smart about dependencies and will only download the ones explicitly listed in a requirements.txt file. This a closer experience to what a developer does when he runs the app in his own machine, which hopefully will lead to less surprises to users.
Release files for frigobar 5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
File added late
1 file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release files before installing.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| frigobar-5.tar.gz | 7.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| frigobar-5-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 14.9 kB
Release files / frigobar-5.tar.gz
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | frigobar-5.tar.gz |
|---|---|
| Size | 7.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f332aa622e79dfe91e4605249734a8b7425581e246f4d0909f55b54473a83f94
|
|
BLAKE2b-256 checksum How to use checksums |
3e29fa97734b67cdfbf705001793ce54ac3826bf8c08df402ef5c4ad9743ae6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / frigobar-5-py2.py3-none-any.whl
| Download URL | frigobar-5-py2.py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
7cf0982bebd2e842181e9e48d25b50d87bb48081fd4baeac18185f0ece3c63e3
|
|
BLAKE2b-256 checksum How to use checksums |
fa7d4d84e72159a9902508b6dd33fbfd9f01c4d12fbe65dd18cdb65998fc89c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|