Simple Python Virtual Environment Management

venv-wrapper is a convenient wrapper around Python's venv module. It was inspired by the virtualenvwrapper project, and it aims to be simpler and more convenient to use.

Installation

Cargo and crates.io

  1. Install rust (https://www.rust-lang.org/tools/install).
  2. Add the cargo bin path to your PATH environment variable.
  3. Run cargo install venv-wrapper.
  4. Add eval "$(venv-wrapper init)" to your shell init script (~/.bashrc, ~/.zshrc, etc.)
  5. Restart your shell.
  6. You can now run venv ls to verify the installation is working.

AUR, PPA, Homebrew

Coming soon!

Configuration

It's possible to configure venv-wrapper with either a configuration file, environment variables, or CLI flags.

Available Configuration Values

Shell Compatibility

Currently, only sh, bash and zsh have been tested and confirmed to work. However, fish support should be comming soon!

UTF-8

Any path to a virtualenv (including the virtualenv name itself) must be valid UTF-8 because paths and virtualenv names are printed to the terminal (and writing invalid UTF-8 to the terminal wouldn't really be all that useful).

Though, since emojis are valid UTF-8, feel free to use them in your virtualenv names! 🚀

Missing Features

In its current state, this project does not quite match the features of virtualenvwrapper. The missing features are as follows :

Releasing Versions

To release a new version, there a few simple steps to follow.

  1. Create or edit the RELEASE_CHANGELOG.md file (at the repo's root) to contain a changelog for the release.
  2. Upadte the version in cargo.toml, cargo.lock, and clap_app.rs.
  3. Merge all code to be released into main.
  4. Create a new tag pointing to the head of the main branch.
  5. Push the new tag.