1

I upgraded from 22.10 to 23.04 just now without any problems. However, after the upgrade my pip is not working and I cannot figure out how to make it working again.

If i just want to call it:

pip
bash: /usr/local/bin/pip: cannot execute: required file not found

With sudo:

sudo pip
sudo: unable to execute /usr/local/bin/pip: No such file or directory

The executables are seemingly there:

ls -la /usr/local/bin/pip*
-rwxr-xr-x 1 root root 224 febr  21 12:13 /usr/local/bin/pip
-rwxr-xr-x 1 root root 224 febr  21 12:13 /usr/local/bin/pip3
-rwxr-xr-x 1 root root 224 febr  21 12:13 /usr/local/bin/pip3.10

If I call it within python (w conda):

python3 -m pip
/home/gerdos/miniconda3/bin/python3: No module named pip.__main__; 'pip' is a package and cannot be directly executed

Without conda it seems to work, but acting strange:

python3 -m pip install --upgrade pip
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

I already tried to remove and install pip with apt, but it did not help.

sudo apt remove python-pip
sudo apt install python-pip

I use python 90% of the time I use my laptop, it would be essential for me to make pip and conda work properly. I have absolutely no idea what is going on.

So I found this answer: https://stackoverflow.com/questions/75602063/pip-install-r-requirements-txt-is-failing-this-environment-is-externally-manag

I understand the error: externally-managed-environment, however the rest of the question still stands. I guess my conda is broken?

3 Answers 3

2

First install pipx:

$ sudo apt install pipx

and then use it like this:

$ pipx install yt-dlp
$ pipx upgrade-all

Note that you should use pipx for installing Python packages under your "normal" user and not system-wide. Never use sudo pip ... or sudo pipx ...!

See also this AskUbuntu Question.

From https://pypa.github.io/pipx/:

pip is a general-purpose package installer for both libraries and apps with no environment isolation. pipx is made specifically for application installation, as it adds isolation yet still makes the apps available in your shell: pipx creates an isolated environment for each application and its associated packages.

1
  • And why is this to be preferred?
    – Hannu
    Aug 3 at 15:45
0
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
sudo apt install python3-pip
2
  • As I wrote I already tried reinstalling. Aug 3 at 15:26
  • 1
    You tried python-pip, not python3-pip according to your post.
    – earthmeLon
    Aug 3 at 15:43
0

FWIW, on Ubuntu 20.04 I have been using

$ python3 -m pip --help
...

$ python3 -m pip install --upgrade pip
Collecting pip
  Downloading pip-23.2.1-py3-none-any.whl (2.1 MB)
     |████████████████████████████████| 2.1 MB 1.2 MB/s 
Installing collected packages: pip
Successfully installed pip-23.2.1
$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .