marty@Marty-PC:~/git/exllama$ pip install numpy
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.12/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 get this error every time I try install any kind of python package. So far, I always just used the --break-system-packages flag, but that seems, well, rather unsafe and breaking.

To this day, I see newly written guides, specifically for Linux, which don’t point out this behaviour. They just say [...] And then install this python package with 'pip install numpy'

Is this something specific to my system, or is this a global thing?

  • data1701d (He/Him)@startrek.website
    link
    fedilink
    English
    arrow-up
    5
    ·
    16 hours ago

    It’s mostly Debian-focused, but you should probably use venvs. They allow you to have different versions of Python packages for different applications. I especially like it when using it in combination with pythonz for applications that require a different version than the system Python.

    I find they prevent the system Python from being a complete pile of anarchy.

    Like others have said, the error tells you everything you need to know.