How to Fix Python Pip Install Error in Ubuntu 24.04

When using pip command to install a Python package in Ubuntu 24.04 will output “error: externally-managed-environment“. Here are a few workarounds to ‘fix’ the issue.

As the terminal output shows you, it’s the change due to PEP 668. Since Ubuntu 23.04, it recommends Python-specific package management tools (e.g., pip) to install packages using a virtual environment, to avoid conflicts to packages installed by OS package managers. Though, user can still force pip to install into interpreter’s global context just like before.

The workarounds to this issue so far include:

  • Install the Python package from system repository if exist.
  • Force pip to install just like before in 22.04.
  • Use pipx instead (Python apps only).
  • Manually create virtual environment and install package into it.

Option 1: Install Python package from System Repository

Debian and Ubuntu include a few thousands of Python packages in system repositories. Before installing a package via pip, it’s better to first take a look if a corresponding OS package is available.

To do so, either use Synaptic package manager (available in App Center) or run sudo apt install python3- command and press “Tab” to list available choices.

Advertisements

Also the packages.ubuntu.com web page provides search function to find packages from system repository.

Option 2: Force pip to install just like before

As the terminal error output shows, user can bypass by adding --break-system-packages flag.

For example, force install imagesearch library via command:

pip install --user imagesearch --break-system-packages

Without typing --break-system-packages every time running the pip install command, you may write the rule into configuration file. To do so, simply run commands:

mkdir -p ~/.config/pip
echo -e "[global]nbreak-system-packages=true" > ~/.config/pip/pip.conf

The commands will first create ~/.config/pip folder if not exist, then create pip.conf config file and write following lines into it:

[global]
break-system-packages=true

After that, you can use pip install command to install Python packages just like in Ubuntu 22.04 and earlier

Option 3: Use pipx

Pipx is an alternative command line tool to install and run Python applications in isolated environments. It’s however for Pythons apps only.

To install and setup pipx, simply run command:

sudo apt install pipx
pipx ensurepath

Then you can install a Python app via pipx, for example cowsay, use command:

pipx install cowsay

Then run it via:

pipx run cowsay --text "Mooo"

And use command to uninstall Python package:

pipx uninstall cowsay

For more about pipx, either run pipx --help or go to its project page.

Option 4: Manually Create Virtual Environment for Installing Python package

1. If you want to manually create virtual environment for installing a Python package in Ubuntu 24.04, then open terminal and run command:

python3 -m venv ~/.venv/cowsay

This command will create .venv/cowsay directory in your user home (replace cowsay to your own name). By running ls ~/.venv/cowsay, you can see that the folder contains a copy of Python executables and libraries.

2. After running the command above to create the virtual Python environment, you may then run the pip command from that directory to install a Python package. For example:

~/.venv/cowsay/bin/pip install cowsay

Finally, run the installed Python app from that virtual environment by running command:

~/.venv/cowsay/bin/cowsay -t "Mooooo"

You can install more Python packages into this single environment (.venv/cowsay in my case), or run python3 -m venv ~/.venv/NAME_HERE again to create more virtual environments to use for other packages.

Add the Virtual Environment to your PATH

Without running the full path to pip and python executable files, you may add the virtual python environment to your PATH.

To do so, either run command which works only in current terminal window:

export PATH=$HOME/.venv/cowsay/bin:$PATH

Or add the command above into user’s .profile file by running the command below. So, it will work anywhere in next login!

echo "export PATH=$HOME/.venv/cowsay/bin:$PATH" >> ~/.profile

Important: it must be >> in last command which append the file with new line. Use > will override the whole file causing issues.

Summary:

In this tutorial, I taught how to workaround the pip install command error in Ubuntu 24.04.

For lazy men who want to make it work like before, just add --break-system-packages command option, though it might break things. While, the recommended way is to either install a replacement through OS package (if any), or create virtual environment and install the Python package into it.