Skip to main content

venvwrapper

Version on Pypi

venvwrapper is a Python package that provides commands that make it easier to manage Python virtual environments that are based on the venv package from the Python standard library.

Basically, venvwrapper is to venv what virtualenvwrapper is to virtualenv: It provides more convenient commands to make the management of virtual environments easier. However, virtualenv supports only a subset of the functionality of virtualenvwrapper.

venvwrapper combines nicely with virtualenvwrapper: The virtual environments created by both packages can reside in the same directory side by side, regardless which of the two created them. That allows you to gradually convert your existing virtualenv/virtualenvwrapper based environments to be based on venv.

Since Python 3.5, venv is the recommended tool for Python virtual environments, as stated in Creating virtual environments:

The use of venv is now recommended for creating virtual environments.

Also note this tweet by the BDFL on the topic:

I use venv (in the stdlib) and a bunch of shell aliases to quickly switch.

Supported shells

At this point, venvwrapper supports bash and zsh. More shells may work, but not with tab completion.

Contributions to add support for more shells are welcome!

Installation

  • Install the venvwrapper Python package into your default system Python 3 (i.e. with no virtual environment active):

    $ pip3 install --break-system-packages venvwrapper
    

    This installs the venvwrapper.sh script so that it is available in the PATH.

    Note that this Python package has no Python dependencies, so it does not break your system Python in any way.

  • Verify that venvwrapper.sh is available in the PATH:

    $ which venvwrapper.sh
    /opt/homebrew/bin/venvwrapper.sh
    
  • Add the following to your shell startup script (e.g. ~/.bash_profile or ~/.zshrc) in a place where no Python virtual environment is active:

    # VENV_HOME=$HOME/.venv
    venv_wrapper=$(which venvwrapper.sh)
    if [[ -n $venv_wrapper ]]; then
        source $venv_wrapper
    fi
    

    VENV_HOME specifies the directory under which the directories for the virtual environments are created. If not set, it defaults to $HOME/.venv.

    VENV_HOME can be set to the same directory that is used for virtualenvwrapper (i.e. its WORKON_HOME directory).

  • Verify the installation by starting a new terminal session, and invoking:

    $ mkvenv --help
    

    This should display the help:

    mkvenv - Create and activate a new Python virtual environment
    
    Usage: mkvenv ENV [PYTHON]
    
    Where:
      ENV      Name of the new virtual environment
      PYTHON   Python command to use for creation. Default: python3
    

Usage

All commands provided by venvwrapper explain their usage when called with -h or --help:

  • venv - activate an existing virtual environment
  • mkvenv - create and activate a new virtual environment
  • rmvenv - remove one or more virtual environments
  • lsvenv - list existing virtual environments

The venv and rmvenv commands support tab completion.

The standard deactivate script provided by the virtual environment is used to deactivate the current virtual environment.

An active virtual environment is indicated by an (env) prefix in the command prompt. That is the normal behavior of venv.

The commands provided by venvwrapper are actually shell functions, so they cannot be used in other scripts. If you need to activate virtual environments in other scripts, call the activate script provided by the virtual environment.

If venvwrapper is configured to use the same directory for its virtual environments as virtualenv/virtualenvwrapper, then the commands that operate on existing virtual environments can be used on either kind of virtual environment, regardless of which package created it. For example, lsvenv will list both kinds of virtual environments.

Development and contributions

The venvwrapper project welcomes contributions.

For how to set up a development environment, see DEVELOP.md.

References

The venvwrapper.sh script provided in this package is based on the script by Ismail Demirbilek at https://gist.github.com/dbtek/fb2ddccb18f0cf63a654ea2cc94c8f19.

Metadata

Release files for venvwrapper 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for venvwrapper 0.9.0
File Size Uploaded Provenance Actions
venvwrapper-0.9.0.tar.gz 8.1 kB With provenance Details for venvwrapper-0.9.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for venvwrapper 0.9.0
File Interpreter ABI Platform Actions
venvwrapper-0.9.0-py3-none-any.whl Python 3 none any Details for venvwrapper-0.9.0-py3-none-any.whl

Total release size: 16.5 kB

Release files / venvwrapper-0.9.0.tar.gz

Download URL venvwrapper-0.9.0.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7a69083a8e8051facbc168ab8d207f0f354527f0fa0f674a93aa9fb061f8cebd
BLAKE2b-256 checksum
How to use checksums
9b713fbc4346e255496c546722e9f0ad94a41d7f96ed92c8461735e6f64ab38c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 15, 2024.

Transparency log

Release files / venvwrapper-0.9.0-py3-none-any.whl

Download URL venvwrapper-0.9.0-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
72578f5c389f1b46492b1587fa4cf7bcab510c3772f3f76262b3c45d87602833
BLAKE2b-256 checksum
How to use checksums
f5affe7e8842d6acab400f358399bbe6c59f9d0b5e572088c8f2276162ae660b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 15, 2024.

Transparency log

Security for venvwrapper 0.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for venvwrapper-0.9.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 15, 2024.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page