Skip to main content

Multi-environment package manager for Python with dependency isolation

Project description

EnvKnit

Multi-version Python package manager — isolate environments, lock dependencies, and run multiple package versions side by side.

Two components: EnvKnit consists of a Rust CLI binary (handles dependency resolution and installation) and a Python library (provides use(), worker() API for in-process version isolation). Both are needed for full functionality.


Installation

Step 1 — CLI binary (required for envknit init/lock/install/run):

# Linux
curl -L https://github.com/wgsim/EnvKnit/releases/latest/download/envknit-linux-amd64 -o envknit
chmod +x envknit && sudo mv envknit /usr/local/bin/

# macOS (Apple Silicon)
curl -L https://github.com/wgsim/EnvKnit/releases/latest/download/envknit-macos-arm64 -o envknit
chmod +x envknit && sudo mv envknit /usr/local/bin/

Other platforms: see the Releases page.

Step 2 — Python library (required for use(), worker() API):

pip install envknit       # requires Python 3.10+

Quick Start

envknit init                              # creates envknit.yaml
envknit add "requests>=2.28"
envknit add "numpy>=1.24,<2.0" --env ml
envknit lock                              # creates envknit.lock.yaml
envknit install                           # installs to ~/.envknit/packages/
envknit run -- python -m pytest

Documentation

Guides

Document Description
Getting Started Installation, first run, 20-minute tutorial
Concepts How EnvKnit works: store, PYTHONPATH, import hook
CLI Scripts Running pytest, black, mypy with envknit run
Python Version python_version field, mise/pyenv integration
Node Version node_version field, fnm/nvm/mise integration
Python API use(), worker(), configure_from_lock() API reference
CI Integration GitHub Actions integration
Environments Managing multiple environments

Reference

Document Description
CLI Reference Complete CLI command reference
Config Schema envknit.yaml and global config fields
Lock Schema envknit.lock.yaml structure

Contributing

git clone https://github.com/wgsim/EnvKnit.git
cd EnvKnit
cargo test          # Rust CLI
pip install -e ".[dev]" && python -m pytest   # Python library

License

MIT

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

envknit-0.1.1.tar.gz (247.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envknit-0.1.1-py3-none-any.whl (90.3 kB view details)

Uploaded Python 3

File details

Details for the file envknit-0.1.1.tar.gz.

File metadata

  • Download URL: envknit-0.1.1.tar.gz
  • Upload date:
  • Size: 247.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for envknit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 368b2fbaf2fad2a369552e682fab0a177338a7aaefac0bdd9ab88b2bde592068
MD5 4f77db8ff7766e590b34ca128e5487b7
BLAKE2b-256 26c58de677d6de2745d2a72a696422d004dfb464f2d3de9e569f2f5cba6c45f6

See more details on using hashes here.

File details

Details for the file envknit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: envknit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 90.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for envknit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3e16e8449b333a0a7442ef155fe3b76a45ea94788b58cfbdafe0ae1aa9908937
MD5 8fcfa66697e4249889a1234f084c5776
BLAKE2b-256 1fb5da25a1514c8d61f4e9c29ecff55c3d9940c1215b18fe8583e0aa67bc7e62

See more details on using hashes here.

Supported by

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