How to install pip on Ubuntu 18.04 the official way

pip is the standard, de-facto package installer for Python. Created to be a better alternative to easy_install, It enables you to install and manage additional packages from PyPI that are not part of the standard Python library. This tutorial will show you the official, recommended way to install pip for both Python 2 and Python 3 on Ubuntu 18.04 LTS and how they will coexist peacefully.

Why do I need to care about pip for Python2 and pip for Python 3?

As the Python community grows, more and more parts of Ubuntu switched to the language. Because of that, Python 2 is now a part of the standard installation of Ubuntu. Despite the fact that Python 3 has many advantages over Python 2, the latter remains a crucial depency of the system. Removing Python 2.7 from Ubuntu 18.04 can cause a lot of trouble in the long run.

Ubuntu 18.04 ships with both Python 2 and Python 3 preinstalled. One pip installation works with only one Python distribution, so we need to separate both the command to invoke pip and the installation itself. For example, pip, by default, calls pip-for-python2 and pip3 is equivalent to pip-for-python3.

Installing pip3 and pip from Ubuntu Repository

Start off by updating system repository using the following command : 

sudo apt update

Then using the following command to install pip for Python 3 (refered to as pip3) and pip for Python 2 (pip) as well as all their depencies.

sudo apt install python3-pip python-pip -y

One the installation is completed, check and verify that pip and pip3 installs successfully using the following command : 

pip3 --version

pip number version may vary depending on the current updated repo, but it should look like this : 

pip 19.0.3 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
Code language: JavaScript (javascript)

Similarly, pip version can be verified using the command below : 

pip 19.0.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
Code language: JavaScript (javascript)

Installing pip independently using official install script

While the installation method above is fast and easy, there is another official method using the script provided by pip development team.

First you need to verify that your system doesn’t have any existing pip installation.

pip --version Command 'pip' not found. Try: sudo apt install <deb name>
Code language: PHP (php)

Then download the installation script by running

Code language: JavaScript (javascript)

Proceed by using the python version of your choice to run the script. Be cautious as the script doesn’t coordinate well with the preinstalled pip version and can cause conflict if you have installed over the preinstalled one.

For example, the command for installing pip for Python 3 system-wide would be 

sudo python3
Code language: JavaScript (javascript)

If you want to install pip for Python 3 for the current user, run

python3 --user
Code language: JavaScript (javascript)

Similarly, the command for pip-on-Python2 should be

sudo python OR python --user
Code language: JavaScript (javascript)

Basic pip usage

Installing a package with pip

pip is made to manage the installation of third-party packages, one of the functionality is installing packages via the following command.

pip install <package_name>
Code language: Bash (bash)

Uninstalling a package

If you don’t need the package anymore you can uninstall it easily with the following command

pip uninstall <package_name>
Code language: Bash (bash)

Searching for Libraries

One can fire up the browser and search for a package on PyPI official website, but you can also do that using command line. For our example let’s look for packages related to “requests“. The search command shows us an extensive list similar to the one below.

pip search requests requests-hawk (1.0.0) - requests-hawk requests-dump (0.1.3) - <code>requests-dump</code> provides hook functions for requests. pydantic-requests (0.1.1) - A pydantic integration with requests. requests-foauth (0.1.1) - Requests TransportAdapter for! requests-auth (4.0.1) - Easy Authentication for Requests Requests-OpenTracing (0.0.1) - OpenTracing support for Requests yamlsettings-requests (1.0.0) - YamlSettings Request Extension requests-aws4auth (0.9) - AWS4 authentication for Requests requests-middleware (0.1.2) - Composable HTTP middleware for requests jupyter-requests (0.0.2) - Send requests to a Jupyter server. requests-twisted (0.1.2) - Twisted adapter for the requests library. requests-oauthlib (1.2.0) - OAuthlib authentication support for Requests. requests-ftp (0.3.1) - FTP Transport Adapter for Requests. requests-async (0.5.0) - async-await support for <code>requests</code>. requests-cache (0.5.0) - Persistent cache for requests library requests-circuit (0.1.0) - A circuit breaker for Python requests requestor-requests (0.1.0) - Requestor Helper to request package requests-core (0.0.0) - A minimal HTTP Client, for Requests. .........and many more.................
Code language: Bash (bash)

Batch installing depencies

Python codes distributed online often includes requirements.txt file declaring all the depencies. If you see this file, you can run this command to install all depencies instead of manually run pip install for each depency.

pip install -r requirements.txt
Code language: Bash (bash)

Show what files are installed and its paths

Sometimes you want to analyze a package’s code, then this command will help you locate its files.

pip show --files OnePackage Name: OnePackage Version: 1.0 Location: /my/env/lib/pythonx.x/site-packages Files: ../OnePackage/ [...]
Code language: Bash (bash)


Now you should have a basic understanding on how to install pip on your Ubuntu 18.04 and how to manage Python packages using pip. For more information, visit the pip user guide page.

Click to rate this post!
[Total: 45 Average: 4.9]

Leave a Comment