Install and Use pipx in Linux

Pipx addresses the shortcomings of the popular pip tool. Learn to install and use Pipx in Linux.
Warp Terminal

Pip is a popular tool for installing Python packages and modules from Python Package Index.

However, in recent distribution versions, pip users are encountering an externally-managed-environment error.

error: externally-managed-environment

That's a 'feature' added to avoid conflicts between Python packages installed via Pip and the native package manager. Python wants you to use separate virtual environments instead of installing the package at the global level via Pip.

This is where pipx comes into the picture. It creates a new virtual environment for each application you install and then creates links to local binary in the /bin at the global level. All this is automatic. It saves time and effort for you.

Let's see how to install and use Pipx on Ubuntu and other Linux distributions.

Install pipx on Ubuntu and other Linux

The installation is straightforward and can be installed using the following command on Ubuntu and Debian:

sudo apt update && sudo apt install pipx

For other distributions, please use your package manager and install it.

Once you are done with the installation, add it to the $PATH so it can be accessed from everywhere:

pipx ensurepath
install pipx in ubuntu

Close the terminal and start it again. That's it! Now, let's have a look at how to use it.

Using pipx

What is the primary use of a package manager? Package installation, updation, and removal.

Let me show how you can do the following with pipx:

  • Search packages
  • Package installation
  • Upgradation
  • Package removal

Let's start with the installation.

How to install packages using pipx

To install packages using pipx, you'd have to follow a simple command syntax:

pipx install <package_name>

For example, here, I installed a very useful program Cowsay:

pipx install cowsay
install python packages in isolation using pipx in ubuntu

Similarly, if you want to install a specific version of the package, you'd have to insert the version number followed by == as shown:

pipx install package==version

For example, here, I installed numpy version 1.24.1:

pipx install numpy==1.24.1

How to search packages

The pipx utility does not have a search feature (because of limited API use of PyPI) but that doesn't mean you can't search Python packages.

To search packages, you'd have to install pypisearch:

pipx install pypisearch

Once you do that, you can search the packages using the pypisearch command:

pypisearch python_package_name

Here, I searched for neofetch:

search python packages in Ubuntu

How to upgrade packages using pipx

Like any other modern package manager, you can upgrade all packages at once or you can upgrade one package at a time.

To upgrade all the packages at once, all you have to do is execute the following command:

pipx upgrade-all
upgrade all the python packages at once in ubuntu

As you can see, it upgraded numpy to the latest version.

But if you want to upgrade a specific package, here's how you do it:

pipx upgrade package-name

Let's say I want to upgrade cowsay package to the latest version, then, I will be using the following:

pipx upgrade cowsay
upgrade specific python package using pipx in ubuntu

How to uninstall packages using pipx

To remove packages, you'd have to use the uninstall flag as shown:

pipx uninstall package_name

For your reference, here, I removed numpy from my system:

pipx uninstall numpy
remove python packages using pipx in ubuntu

Pip or Pipx?

The restrictions put on Pip have limited its use by the end users. Thankfully, Pipx provides the much-needed alternative. It meets the Python guidelines of using virtual environments and, at the same time, allows installed applications to be available at the global level.

For end users, who are not Python application developers, this gives the option to use Python applications unavailable in distribution repositories.

I hope you find this tutorial helpful. Let me know if you have questions or suggestions.

About the author
Sagar Sharma

Sagar Sharma

A software engineer who loves to write about his experience with Linux. While reviving my crashed system, you can find me reading literature, manga, or watering my plants.

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

It's FOSS

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.