Some operating systems depend on a specific version of python to function properly. For example, Yum on Redhat Enterprise Linux 5 (RHEL5) depends on python 2.4.3. This version of python lacks support from many utilities and 3rd party libraries. This guide will cover installing an alternative python instance while leaving the system's python alone.
This guide supports the following operating systems: Redhat, CentOS, and Fedora. As of this publication the latest Python version was 2.7.8; You might want to determine if a newer version exists.
Install Python 2.7
I found two methods which work for installing Python 2.7 side-by-side with the system's Python.
- compile from source
- install package via the scl repo
Choose which ever strategy you find easier.
Compile from source
Gather the dependencies:
yum install gcc zlib-devel python-setuptools readline-devel
- gcc is a compiler used to build python
- zlib-devel allows the python zlib module to be built
- python-setuptools provides the easy_install application
- readline-devel arrows readline and history handling in python shell
Download and untar the python sourcecode:
wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz tar -xzvf Python-2.7.8.tgz cd Python-2.7.8
Compile the sourcecode:
./configure make altinstall
Test new alternative python:
python2.7 --version
Document path to new python2.7, you will need it if you plan to use a virtualenv:
which python2.7
Now we can install third party libraries into our alternative python:
python2.7 -m easy_install
Install package from scl
install centos-release-scl repolists:
sudo yum install centos-release-scl
install python27:
sudo yum install python27
enable python27 via scl:
scl enable python27 bash
Document path to new python2.7, you will need it if you plan to use a virtualenv:
which python2.7
virtualenv
Optionally we can create a virtualenv (for development) based on the python 2.7 install. Virtual environments appear useful for testing packages and libraries without installing them to the system owned python site-packages directory.
Install pip using easy_install:
sudo easy_install pip
Install virtualenv using pip:
sudo pip install virtualenv
Create a new virtual python environment named virtpy:
cd ~ virtualenv -p /usr/local/bin/python2.7 virtpy
This will create a virtual python 2.7.2 environment named virtpy in your present working directory.
To invoke this environment run source virtpy/bin/activate and your prompt should change to reflect the active virtualenv.
Now you can run easy_install to install packages into virtpy/lib/python2.7/site-packages.
Thanks for reading, that's all for now.