Virtual environments provide dependency isolation for small projects. They also keep your site-packages
directory small. Since Python 3.3, virtualenv
has been part of the standard Python distribution. The virtualenvwrapper Python project has some extra convenient features for virtual environment management. I will demonstrate virtualenv and virtualenvwrapper functionality in this recipe.
You need Python 3.3 or later. You can install virtualenvwrapper
with pip
command as follows:
$ [sudo] pip install virtualenvwrapper
On Linux and Mac, it's necessary to do some extra work—specifying a directory for the virtual environments and sourcing a script:
$ export WORKON_HOME=/tmp/envs $ source /usr/local/bin/virtualenvwrapper.sh
Windows has a separate version, which you can install with the following command:
$ pip install virtualenvwrapper-win
Create a virtual environment for a given directory with the
pyvenv
script part of your Python distribution:$ pyvenv /tmp/testenv $ ls bin include lib pyvenv.cfg
In this example, we created a
testenv
directory in the/tmp
directory with several directories and a configuration file. The configuration filepyvenv.cfg
contains the Python version and the home directory of the Python distribution.Activate the environment on Linux or Mac by sourcing the
activate
script, for example, with the following command:$ source bin/activate
On Windows, use the
activate.bat
file.You can now install packages in this environment in isolation. When you are done with the environment, switch back on Linux or Mac with the following command:
$ deactivate
On Windows, use the
deactivate.bat
file.Alternatively, you could use virtualenvwrapper. Create and switch to a virtual environment with the following command:
vagrant@data-science-toolbox:~$ mkvirtualenv env2
Deactivate the environment with the
deactivate
command:(env2)vagrant@data-science-toolbox:~$ deactivate
Delete the environment with the
rmvirtualenv
command:vagrant@data-science-toolbox:~$ rmvirtualenv env2
The Python standard library documentation for virtual environments at https://docs.python.org/3/library/venv.html#creating-virtual-environments (retrieved July 2015)
The virtualenvwrapper documentation is at https://virtualenvwrapper.readthedocs.org/en/latest/index.html (retrieved July 2015)