How to install and configure virtualenv
and virtualenvwrapper
for Python
on OSX
?
To install virtualenv
and virtualenvwrapper
for repetitive use you need a correctly configured Python
(this example uses Python 3.x
but process is identical for Python 2.x
).
Although you can get python
installer from Python website I strongly advice 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:
/Library/Frameworks/Python.framework/Versions/3.x
Brew
on the other hand installs Python
, Pip
& Setuptools
and puts everything to:
/usr/local/bin/python3.x/site-packages
And though it may not make any difference to you now – it will later on.
brew
Check out brew
installation page or simply run this in your terminal:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Python
To install python
with brew
run:
brew install python3
Now your system needs to know where to look for freshly installed Python
packages. Add this line to youre ~/.zshrc
(or ~/.bash_profile
if you're using bash
):
export PATH=/usr/local/share/python:$PATH
Restart your terminal.
To make sure you've done everything correctly run which python3
and in return you should receive /usr/local/bin/python
.
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
:
pip3 install virtualenv virtualenvwrapper
virtualenv
variablesDefine a default path for your virtual environments. For example you can create a hidden directory inside ~
and called 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
export PATH=/usr/local/share/python:$PATH
# Configuration for virtualenv
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
Restart your terminal. You should be able to use mkvirtualenv
and workon
commands including autocompletion.
Here's a little tip on how to create virtualenv with specific version of Python.
In case you are using
MacOS Mojave
and you are installingPython3.6
from brew bottle you might have a problem withpip
, here's a solution that might help.
With time some of you may want to install multiple Python
versions with multiple virtual environments per version. That's where pyenv and pyenv-virtualenv come into play.