venv is Python’s built in virtual environment manager. The weirdest thing for me about python development has always been virtual environment/virtualenv management.

So which is it? virtualenv? Or pyenv? Or should I use pipenv? What about poetry?

Luckily, python stdlib does have a built in solution for this, making things boring and hopefully settling some debates about which to use. It’s venv.

There should be one-- and preferably only one --obvious way to do it.

It’s LITERALLY built into the language!

How to use it?

python3 -m venv venv

This initializes a virtualenv in the venv dir of whatever dir this was run in.

Then you can run this command:

source venv/bin/activate

and if that works you’ve entered the ‘venv’ python interpreter

From there, you can run:

pip install -r requirements.txt

Or similar, and it will all be scoped to the current dir.

Also,when you want to ‘select interpreter’ (say for vscode) you just need to select the venv/bin/python of the venv you just created.

Last modified: April 25, 2023
© 2024