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, tt 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)

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

pip --version
pip 19.0.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

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>

Then download the installation script by running

wget https://bootstrap.pypa.io/get-pip.py

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 get-pip.py installed over the preinstalled one.

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

sudo python3 get-pip.py

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

python3 get-pip.py --user

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

sudo python get-pip.py
OR
python get-pip.py --user

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>

Uninstalling a package

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

pip uninstall <package_name>

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)                  - `requests-dump` provides hook functions for requests.
pydantic-requests (0.1.1)              - A pydantic integration with requests.
requests-foauth (0.1.1)                - Requests TransportAdapter for foauth.org!
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 `requests`.
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.................

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

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/__init__.py
  [...]

Conclusion

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.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Leave a Reply

Your email address will not be published. Required fields are marked *