Home

Awesome

venv-wrapper

zsh plugin defining functions to wrap working with python's builtin venv module

Managing your virtual environments using python's python -m venv has the advantage of not requiring any external dependencies (unlike virtualenv), but has the disadvantage of not being very user-friendly/fast.

This plugin provides zsh functions to ease the management of your virtual environments.

Installation

If you use zgen as your plugin manager, you can simply add zgen load glostis/venv-wrapper to the relevant section of your ~/.zshrc (see here for an example ~/.zshrc using zgen to load plugins).

Usage

To list your existing virtual environments:

$ venv
Type `venv name_of_env` to activate a virtual environment.

Here is the list of existing virtual environments:
--------------------------------------------------
my_venv_1
my_venv_2

Activating an existing virtual environment:

$ venv my_venv_1
(my_venv_1) $

Deactivating a virtual environment:

(my_venv_1) $ deactivate
$

Creating a new virtual environment:

$ venv my_venv_3
Virtual environment `my_venv_3` does not exist.
Do you want to create it? [y/n] y
Created and activated venv my_venv_3
(my_venv_3) $

(you can also directly call mkvenv my_venv_3 which will skip the prompt)

Removing a virtual environment:

(my_venv_3) $ deactivate  # You must be outside of a venv before removing it
$ rmvenv my_venv_3
Removed venv my_venv_3

This plugin autocompletes the names of existing virtual environments (try venv my_ven<TAB>)

Configuration

You can set the VENV_WRAPPER_PYTHON environment variable to choose which python executable is used to create virtual environments. By default, python3 is used.