Python/Virtualenv

From ArchWiki
Revision as of 14:45, 15 November 2010 by Tcourbon (Talk | contribs) (Created page with "Category:Development (English) ==Introduction== ''virtualenv'' is a python tool written by Ian Bicking and used to create isolated environments for python in which you can i...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Introduction

virtualenv is a python tool written by Ian Bicking and used to create isolated environments for python in which you can install packages without interfering with the other virtualenvs nor with the system python's packages. The present article cover the installation of the virtualenv package and its companion command line utility virtualenvwrapper designed by Doug Hellmann to (greatly) improve your work flow. A quick how-to to help you to begin working inside virtual environment is then provided.

Virtual Environments at a glance

virtualenv is a tool designated to address the problem of dealing with packages' dependencies while maintaining different versions that suite projects' needs. For example, if you work on two Django web sites, say one that needs Django 1.2 while the other needs the good old 0.96. You have no way to keep both versions if you install them into /usr/lib/python2/site-packages . Thanks to virtualenv it's possible, by creating to isolated environment, to have the two development environment to play along nicely.

vitualenvwrapper take virtualenv a step further by providing convenient command you can invoke from your favourite console.


Virtualenv

Currently virtualenv only support Python up to version 2.7. If you really need virtual environment on Python 3 check out the virtualenv3 project on Bitbucket : http://bitbucket.org/brandon/virtualenv3.

Installation

Simply install python-virtualenv from the community repository and you're done :

# pacman -S python-virtualenv

Basic Usage

An extended tutorial on how use virtualenv for sandboxing can be found here.

The typical use case is:

  • Create a folder for the new virtualenv :
$ mkdir ~/.virtualenvs/my_env
  • Create the virtualenv, here without package inheritance from the system's installation :
$ virtualenv --no-site-pacakges ~/.virtualenvs/my_env
  • Activate he virtualenv :
$ source ~/.virtualenvs/my_env/bin/activate
  • Install some package inside the virtualenv (say, Django) :
(my_env)$ easy_install django
  • Do your things
  • Leave the virtualenv :
(my_env)$ deactivate

Virtualenvwrapper

virtualenvwrapper allow more natural command line interactions with your virtualenvs by exposing several usefull commands to create, activate and remove virtualenvs. As virtualenv this package does not support currently Python 3.x.

Installation

Install python-virtualenvwrapper from community, if you have not installed python-virtualenv yet, it will be installed now as a dependency.

# pacman -S python-virtualenvwrapper

Now add the following line to your .bashrc :

source /usr/bin/virtualenvwrapper.sh
export WORKON_HOME=~/.virtualenvs

Re-open your console and create the WORKON_HOME folder :

$ mkdir $WORKON_HOME

Basic Usage

The main information source on virtualenvwrapper usage (and extension capability) is Doug Hellmann's page : http://www.doughellmann.com/docs/virtualenvwrapper/.

  • Create the virtualenv:
$ mkvirtualenv --no-site-pacakges my_env
  • Activate he virtualenv :
$ workon my_enve
  • Install some package inside the virtualenv (say, Django) : (my_env)$ easy_install django
  • Do your things
  • Leave the virtualenv :
(my_env)$ deactivate

See Also