🐍 Python virtualenvs with mkvirtualenv

July 24, 2021

Create a virtualenv

Let's say you wanted to create a virtualenv for a new project using python3 called gutentag

bash

This command can be run from anywhere, though I tend to create a directory for the project in my $HOME/Developer/ directory with the same name as the virtualenv.

Delete a virtualenv

What if you no longer need a particular virtualenv? Use the rmvirtualenv command.

bash
$ rmvirtualenv gutentag

List all current virtualenv

To output a list of existing virtualenv setups, use the lsvirtualenv following command, note the -b option for brevity.

bash
$ lsvirtualenv -b

Installing mkvirtualenv

📝Note

These steps are copy/pasted from this stackoverflow Post so that I can find them quickly.

To install virtualenv and virtualenvwrapper for repetitive use you need a correctly configured Python (this example uses Python 3.x but the process is identical for Python 2.x).

Although you can get the python installer from Python website I advise against it. The most convenient and future-proof method to install Python on MacOS is brew.

Main difference between installer from Python website and brew is that installer puts python packages to:

bash
$ /Library/Frameworks/Python.framework/Versions/3.x

Brew on the other hand installs Python, Pip & Setuptools and puts everything to:

bash
$ /usr/local/bin/python3.x/site-packages

And though it may not make any difference to you now – it will later on.


Configuration steps

Install brew

Check out brew installation page or simply run this in your terminal:

install brew

Install Python

To install python with brew run:

bash
$ brew install python3

Now your system needs to know where to look for freshly installed Python packages. Add this line to your ~/.zshrc (or ~/.bash_profile if you're using bash):

~/.zshrc
⚠️Warning

Restart your terminal. To make sure you've done everything correctly, run which python3 and in return you should receive /usr/local/bin/python.

Install virtualenv & virtualenvwrapper

Now it's time to install virtualenv and virtualenvwrapper to be able to use workon command and switch between virtual environments. This is done using pip:

bash
$ pip3 install virtualenv virtualenvwrapper

Set up virtualenv variables

Define a default path for your virtual environments. For example you can create a hidden directory inside ~ and call it .virtualenvs with mkdir ~/.virtualenvs. Add virtualenv variables to .zshrc (or .bash_profile).

Final version of your .zshrc (or .bash_profile) should contain this information to work properly with installed packages:

Setting PATH for Python 3 installed by brew

bash

Configuration for virtualenv

bash

Restart your terminal

You should be able to use mkvirtualenv and workon commands including autocompletion.