Installing pip to install Python packages on a CentOS system

The pip package manager provides a convenient way to install Python packages. It is operating system independent so can be used on a variety of operating systems, including Linux, OS X/macOS, and Microsoft Windows. You can determine if it is already installed on a Linux or OS X system by issuing the command which pip at a shell prompt.

$ which pip
/usr/bin/which: no pip in (/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/lo
cal/sbin:/usr/sbin:/home/jdoe/.local/bin:/home/jdoe/bin)
$

If it isn't installed, but easy_install is installed, you can use the easy_install Python script to install pip. If easy_install isn't installed, you can install it on a CentOS Linux system by running yum install python-setuptools, since it is part of the python-setuptools package, as shown below. Setuptools is a package development process library. The easy_install utility is a short 10 line Python script, which provides a mechanism to install Python programs and libraries in the the Python Eggs format.

$ which easy_install
/usr/bin/easy_install
$ rpm -qf /usr/bin/easy_install
python-setuptools-0.9.8-3.el7.noarch
$ rpm -qi python-setuptools
Name        : python-setuptools
Version     : 0.9.8
Release     : 3.el7
Architecture: noarch
Install Date: Sun 05 Oct 2014 07:34:34 PM EDT
Group       : Applications/System
Size        : 2039798
License     : Python or ZPLv2.0
Signature   : RSA/SHA256, Fri 04 Jul 2014 12:41:51 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : python-setuptools-0.9.8-3.el7.src.rpm
Build Date  : Mon 09 Jun 2014 07:36:55 PM EDT
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://pypi.python.org/pypi/setuptools
Summary     : Easily build and distribute Python packages
Description :
Setuptools is a collection of enhancements to the Python distutils that allow
you to more easily build and distribute Python packages, especially ones that
have dependencies on other packages.

This package contains the runtime components of setuptools, necessary to
execute the software that requires pkg_resources.py.

This package contains the distribute fork of setuptools.
$ file $(which easy_install)
/usr/bin/easy_install: Python script, ASCII text executable
$ wc -l /usr/bin/easy_install
10 /usr/bin/easy_install
$ cat /usr/bin/easy_install
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==0.9.8','console_scripts','easy_install'
__requires__ = 'setuptools==0.9.8'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('setuptools==0.9.8', 'console_scripts', 'easy_install')()
    )
$

To install pip with easy_install, log into the root account and issue the command easy_install pip, which will install the the pip Python script in /usr/bin.

Udemy Generic Category (English)120x600
# easy_install pip
Searching for pip
Reading https://pypi.python.org/simple/pip/
Best match: pip 9.0.1
Downloading https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d
6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69
d63c9
Processing pip-9.0.1.tar.gz
Writing /tmp/easy_install-LrtDFh/pip-9.0.1/setup.cfg
Running pip-9.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-LrtDFh/pip-
9.0.1/egg-dist-tmp-2yNYuH
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution op
tion: 'python_requires'
  warnings.warn(msg)
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.mailmap'
warning: no previously-included files found matching '.travis.yml'
warning: no previously-included files found matching '.landscape.yml'
warning: no previously-included files found matching 'pip/_vendor/Makefile'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files found matching 'dev-requirements.txt'
warning: no previously-included files found matching 'appveyor.yml'
no previously-included directories found matching '.github'
no previously-included directories found matching '.travis'
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'contrib'
no previously-included directories found matching 'tasks'
no previously-included directories found matching 'tests'
Adding pip 9.0.1 to easy-install.pth file
Installing pip script to /usr/bin
Installing pip2.7 script to /usr/bin
Installing pip2 script to /usr/bin

Installed /usr/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip
# which pip
/usr/bin/pip
# file /usr/bin/pip
/usr/bin/pip: Python script, ASCII text executable
#

The installation will put a pip .egg file in /usr/lib/python2.x/site-packages/pip-9.0.1-py2.7.egg where the python2.x will reflect the version of Python you have on the system (you can determine the version of Python on the system with python --version). E.g., python2.7 in this example.

Related articles:

  1. Easy Install Python Module on OS X