Managing multiple versions of python on a Linux box
If you are working on Python or any of your development tool is based on Python then you must have faced a problem in using multiple versions of Python. For an instance I develop web applications using Django which has kind of beta support for Python 3 so I have to be on Python 27 and same for repo from Google which does not run on Python 3. But Python 3 is required in some cases for example I am running arch Linux which demands for Python 3 for some of its components. I came across an amazing tool named pythonbrew.
Pythonbrew provides very simple commands to install, uninstall and switch between multiple versions of python.
To install a python version
pythonbrew install 3.2
To remove a python version
pythonbrew uninstall 3.2
To switch to a particular version of Python
pythonbrew switch 2.7
In action:
Installing a version
[akshay@amd_dev ~/Downloads/pythonbrew]$ pythonbrew install 3.2
Downloading Python-3.2.tgz as /home/akshay/.pythonbrew/dists/Python-3.2.tgz
######################################################################## 100.0%
Extracting Python-3.2.tgz into /home/akshay/.pythonbrew/build/Python-3.2
This could take a while. You can run the following command on another shell to track the status:
tail -f "/home/akshay/.pythonbrew/log/build.log"
Patching Python-3.2
Installing Python-3.2 into /home/akshay/.pythonbrew/pythons/Python-3.2
Downloading distribute_setup.py as /home/akshay/.pythonbrew/dists/distribute_setup.py
######################################################################## 100.0%
Installing distribute into /home/akshay/.pythonbrew/pythons/Python-3.2
Installing pip into /home/akshay/.pythonbrew/pythons/Python-3.2
Installed Python-3.2 successfully.
Run the following command to switch to Python-3.2.
pythonbrew switch 3.2
[akshay@amd_dev ~/Downloads/pythonbrew]$ python
Python 2.7 (r27:82500, Aug 18 2012, 12:32:52)
[GCC 4.7.1 20120721 (prerelease)] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>
Switch to version 3.2 which is just installed
[akshay@amd_dev ~/Downloads/pythonbrew]$ pythonbrew switch 3.2
Switched to Python-3.2
[akshay@amd_dev ~/Downloads/pythonbrew]$ python
Python 3.2 (r32:88445, Aug 18 2012, 12:56:01)
[GCC 4.7.1 20120721 (prerelease)] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>
Switch back to version 2.7
[akshay@amd_dev ~/Downloads/pythonbrew]$ pythonbrew switch 2.7
Switched to Python-2.7
[akshay@amd_dev ~/Downloads/pythonbrew]$ python
Python 2.7 (r27:82500, Aug 18 2012, 12:32:52)
[GCC 4.7.1 20120721 (prerelease)] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>