Skip to main content

Create portable (Python 🐍) projects on the fly 🚀 !

Project description

carefree-portable 📦️

carefree-portable 📦️ aims to help you create portable (Python 🐍) projects of your codes / repo!

💡We are planning to:

  • use venv as a fallback solution for Linux / MacOS. (Done!)
  • support other programming languages in the future, after Python is fully supported.

See Roadmap for more details.

Highlights

  • Portable: The generated portable project can be used directly without any extra requirements.
    • For example, you can run a portable Python project even without Python installed!
  • Extensible: You can easily extend the functionality of carefree-portable 📦️ by editing existing configurations, or adding brand new block / preset without much effort.
    • See the Stable Diffusion Web UI example on how we hijack the famous SD webui repo with a custom block and make it portable out-of-the-box.
  • Integrable: You can integrate carefree-portable 📦️ with (GitHub) CI to automatically generate a portable version of your project.
    • Basically, you only need to create a cfport.json file in the root directory of your project, and then run cfport package in your CI workflow (see Usages for more details).
    • Here's an example of how carefree-portable 📦️ packages itself into a portable version in the GitHub CI workflow.

Installation

carefree-portable 📦️ requires Python 3.8 or higher.

pip install carefree-portable

or

git clone https://github.com/carefree0910/carefree-portable.git
cd carefree-portable
pip install -e .

Usages

Detailed usages can be found in the CLI & Configurations documentation.

Go to the root directory of your project first:

cd <path/to/your/project>

Generate Config

To generate a default config, run:

cfport config

This command will genearte a cfport.json file in the current directory. To make it work properly, you may need to edit the python_requirements field, which is a list of Python packages that your project depends on.

  • Don't forget to add your own project to this field as well!

Packaging

After generating the config, you can package your project by running:

cfport package

PyTorch

Since nowadays many fancy projects are built on top of pytorch, we provided a preset config for pytorch projects, which can be generated by:

cfport config --preset torch-2.1.0-cu118
# or
cfport config --preset torch-2.1.0-cpu

This will generate a cfport.json with a pre-defined requirement in the python_requirements field.

You may notice that the pre-defined requirement starts with $pip instead of pip. This is important because it can tell carefree-portable 📦️ to use the correct pip executable when packaging your project.

Examples

Portable carefree-portable 📦️

You may also download the carefree-portable-*.zip from the assets of the latest Releases. The zip files contain the portable versions of carefree-portable 📦️ that can be used directly:

  • On Linux / MacOS, you still need to have Python installed (to activate the venv), but no extra packages are required.
  • On Windows, you can even run it without Python installed!

If you are using this portable version, just make sure to:

  • cd into the unzipped carefree-portable-* folder.
  • Replace cfport with .\run.bat (Windows) / bash run.sh (Linux / MacOS) in the following commands.
  • Replace python with <path\to\portable\python> in other python commands. The portable python locates at:
    • Windows: .\carefree-portable-*\python_embeddables\python-3.10.11-embed-amd64\python.
    • Linux / MacOS: ./carefree-portable-*/python_venv/bin/python3.

Here's a step by step guide on how to use the portable carefree-portable 📦️ to run the Stable Diffusion Web UI example:

  1. Download the carefree-portable-*.zip from the assets of the latest Releases.
  2. Unzip the carefree-portable-*.zip to a folder (let's say, ./carefree-portable-*), and cd into it.
  3. Download the run.py from here, and put it into the unzipped folder (./carefree-portable-*).
  4. Run the following command, and wait until the webui pops up:
.\python_embeddables\python-3.10.11-embed-amd64\python run.py
  1. After these steps, you'll obtain a portable version of the SD webui (locates at ./carefree-portable-*/sd_webui_cfport), which can be used directly without any extra requirements!

Contributing

Contributions are truly welcomed!

See CONTRIBUTING.md for more details.

License

carefree-portable 📦️ is MIT licensed, as found in the LICENSE file.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carefree-portable-0.1.2.tar.gz (14.5 kB view details)

Uploaded Source

File details

Details for the file carefree-portable-0.1.2.tar.gz.

File metadata

  • Download URL: carefree-portable-0.1.2.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for carefree-portable-0.1.2.tar.gz
Algorithm Hash digest
SHA256 edd558ba8174cfbd5d6bc94dfb347a85700ec4e2c5df5491c66de753416d0910
MD5 5e43f094c84e217d4280db0492019bf2
BLAKE2b-256 1499918a99f3cb599cca18eaa7969f809272f81f1ad85086e7b8ae9c2d6de1ff

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page