Pip behaviour changed after an update

I’ve noticed it on Debian before, but didn’t have this problem here even a week ago, but now when I try to install python pacakges with pip:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try 'pacman -S
    python-xyz', where xyz is the package you are trying to
    If you wish to install a non-Arch-packaged Python package,
    create a virtual environment using 'python -m venv path/to/venv'.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip.
    If you wish to install a non-Arch packaged Python application,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. Make sure you have python-pipx
    installed via pacman.

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.

How do I use it as before? I don’t really want to mess with python virtual environments this week.

You really shouldn’t - system depends on python …

Lookup the hint and you will find how you may cheat.

So before it was installing globaly by default?

Weren’t packages before installed to a user? I though packages that system depends on go to root user.

The problem with --user is that it is installed in the user’s path - thus potentially overriding system packages.

This is why it has been underway for some years … look at PEP668

You can even find it searching the forum. e.g. Discussion about avoiding common pitfalls as developer

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.