Running multiple versions of python

You can generally run multiple version of Python minor release 2.7 vs 2.6. These are symlinks created in /usr/bin/.

But how do you go about running multiple versions of the the same minor release - 2.7.9 vs 2.7.10.

I wrote a small script that downloads, builds python from source and installs it in a path of its own.

The below is to be run with the required version, for e.g.2.7.9.

#!/bin/bash
version=$1  
mkdir ~/python  
wget http://www.python.org/ftp/python/$version/Python-$version.tgz  
tar -zxvf Python-$version.tgz  
cd Python-$version  
mkdir ~/.localpython-$version  
./configure --prefix=$HOME/.localpython-$version
make  
make install  

It can then be used from ~/.localpython-2.7.9/bin/python.

we can now set up a virtual environment specifically for each version of python we have installed.

Install virtualenv

sudo apt-get install virtualenv  

Add the following to ~/.bashrc or ~/.zshrc,

source /usr/local/bin/virtualenvwrapper.sh  
export WORKON_HOME="$HOME/virtual_env/"  
export PIP_VIRTUALENV_BASE=$WORKON_HOME  

Now you can create a new environment using the below command. The -p option specifies the python version to use for this environment. --no-site-packages will restrict this environment from using the python libraries from the global environment.

mkvirtualenv --no-site-packages -p ~/.localpython-2.7.9/bin/python python279  

Here on, we call switch to this new environment using the below,

workon python279  

Can get out this environment by using

deactivate