Virtual Environments — The Hitchhiker's Guide to Python (original) (raw)
A Virtual Environment, put simply, is an isolated working copy of Python which allows you to work on a specific project without worry of affecting other projects.
For example, you can work on a project which requires Django 1.3 while also maintaining a project which requires Django 1.0.
virtualenv¶
virtualenv is a tool to create isolated Python environments.
Install it via pip:
Basic Usage¶
- Create a virtual environment:
This creates a copy of Python in whichever directory you ran the command in, placing it in a folder named venv
.
- To begin using the virtual environment, it needs to be activated:
$ source venv/bin/activate
You can then begin installing any new modules without affecting the system default Python or other virtual environments.
- If you are done working in the virtual environment for the moment, you can deactivate it:
This puts you back to the system’s default Python interpreter with all its installed libraries.
To delete a virtual environment, just delete its folder.
After a while, though, you might end up with a lot of virtual environments littered across your system, and its possible you’ll forget their names or where they were placed.
virtualenvwrapper¶
virtualenvwrapperprovides a set of commands which makes working with virtual environments much more pleasant. It also places all your virtual environments in one place.
To install (make sure virtualenv is already installed):
$ pip install virtualenvwrapper $ export WORKON_HOME=~/Envs $ source /usr/local/bin/virtualenvwrapper.sh
(Full virtualenvwrapper install instructions.)
For Windows, you can use the virtualenvwrapper-powershell clone.
To install (make sure virtualenv is already installed):
PS> pip install virtualenvwrapper-powershell PS> $env:WORKON_HOME="~/Envs" PS> mkdir $env:WORKON_HOME PS> import-module virtualenvwrapper
Basic Usage¶
- Create a virtual environment:
This creates the venv
folder inside ~/Envs
.
- Work on a virtual environment:
virtualenvwrapper provides tab-completion on environment names. It really helps when you have a lot of environments and have trouble remembering their names.workon
also deactivates whatever environment you are currently in, so you can quickly switch between environments.
- Deactivating is still the same:
- To delete:
Other useful commands¶
lsvirtualenv
List all of the environments.
cdvirtualenv
Navigate into the directory of the currently activated virtual environment, so you can browse its site-packages
, for example.
cdsitepackages
Like the above, but directly into site-packages
directory.
lssitepackages
Shows contents of site-packages
directory.
Full list of virtualenvwrapper commands.
autoenv¶
When you cd
into a directory containing a .env
, autoenvautomagically activates the environment.
Install it on Mac OS X using brew
:
And on Linux:
$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv $ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc