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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
368b2fbaf2fad2a369552e682fab0a177338a7aaefac0bdd9ab88b2bde592068
|
|
| MD5 |
4f77db8ff7766e590b34ca128e5487b7
|
|
| BLAKE2b-256 |
26c58de677d6de2745d2a72a696422d004dfb464f2d3de9e569f2f5cba6c45f6
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e16e8449b333a0a7442ef155fe3b76a45ea94788b58cfbdafe0ae1aa9908937
|
|
| MD5 |
8fcfa66697e4249889a1234f084c5776
|
|
| BLAKE2b-256 |
1fb5da25a1514c8d61f4e9c29ecff55c3d9940c1215b18fe8583e0aa67bc7e62
|