home | list info | list archive | date index | thread index

How nervous should I be using "pip3 install --break-system-packages ..."?

  • Subject: How nervous should I be using "pip3 install --break-system-packages ..."?
  • From: "Robert P. J. Day" <rpjday [ at ] crashcourse [ dot ] ca>
  • Date: Wed, 19 Aug 2026 10:04:05 -0400 (EDT)
  In order to build a Sphinx-based docs repo, I need to install the
Sphinx theme used by that repo, "piccolo-theme". When given a choice,
since I use Debian 13 these days, I prefer to install Debian .deb
packages, as in:

  $ sudo apt install python3-piccolo-theme

Occasionally, if there is no appropriate .deb package, I'll revert to
using "pip3", but when doing that for this theme, I get:

$ pip3 install piccolo-theme
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.13/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 don't want to start a virtual environment just for this, and it
appears that the only option is (as the error messages suggests)
install with "--break-system-packages".

  I'm really uncomfortable adding an option that promises to "break"
stuff ... is that really the right way to go?

rday