Lately, i have been doing lot of lower level system administrator tasks. I have come to realize that it is very painful to set up more than one version of the same software in the single system while you cannot just say no to these kind of requests. One good example is python. As we all know, there are at least three popular versions of the python that are actively being used: 2.7.6, 2.7.9 and 3.4.3, as of today. It is kind of funny that some python software will only garantee to work in one single version but not the other version(s). Therefore, one of the big headache is to install the different versions of the python on the same box and make them all available to different developers/applicatoins. In this tutorial, i will outline how to set these up using VirtualEnv on a blank new AWS EC2 instance that is running Linux Ubuntu just for demonstrations.
Assuming the instance is already installed with the pythong 2.7.6 as default.
Ley say we would like to install the 2.7.9 as well, here are the steps to install the 2.7.9. version first:
1. Make sure all dependencies are available by executing the following apt-get command
sudo apt-get install -y gcc-multilib g++-multilib libffi-dev libffi6 libffi6-dbg python-crypto python-mox3 python-pil python-ply libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libgdbm-dev dpkg-dev quilt autotools-dev libreadline-dev libtinfo-dev libncursesw5-dev tk-dev blt-dev libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libsqlite3-dev libgpm2 mime-support netbase net-tools bzip2
2. Download the 2.7.9. Python sources and compile and build it
tar xfz Python-2.7.9.tgz
./configure –prefix /usr/local/lib/python2.7.9
sudo make install
Now the 2.7.9. version has been installed in the system silently. Keep in mind that, the default python version is still: 2.7.6., we can verify it if we type the python -V:
Now, we need to have some meanings to switch between these two versions. We can use: VirtualEnv to do that perfectly! In the subsequent sections, I will discuss how to install VirtualEnv and use it:
4) Make sure easy-install is installed in the system first
wget https://bootstrap.pypa.io/ez_setup.py -O – | sudo python
5) Install the virtualenv using easy_install
sudo easy_install virtualenv
6) Create a virtual environment with python setting to the new installed path
virtualenv –python=/usr/local/lib/python2.7.9/bin/python myPython2.7.9
4) Loading the new created environment
5) Now verify that the python 2.7.9 does load up in this virtual environment
6) Good. you are now under python 2.7.9. Let say you are done and you want to quit the virtual environment, you can type ‘deactivate’ to quit and back to the normal terminal
7) Verify that we have python 2.7.6 back in the terminal
Congrats! you have now learned how to use VirtualEnv to switch different versions of the python on your single machine easily.