You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On recent Debian/Ubuntu systems (and possibly others), installing anything with pip install, even with --user, as we do in tools/env/pip3/deps, results in an error looking roughly like this:
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.
As a simple workaround we can add --break-system-packages to our installation script tools/env/pip3/deps. I'm fairly confident that installing the few packages that we need with pip install --user does not actually break system packages, but the flag is intentionally named so as to "carry some connotation that its use is risky". Setting this flag does not seem like a good permanent solution.
Possible alternatives for the dependencies installed in tools/env/pip3:
toml, pyyaml and plumbum, as dependencies of the topogen scripts. To avoid the installation in the user site packages, the topogen scripts could be run in a venv, or (*shudder*) via with bazel and python_rules.
The text was updated successfully, but these errors were encountered:
On recent Debian/Ubuntu systems (and possibly others), installing anything with
pip install
, even with--user
, as we do in tools/env/pip3/deps, results in an error looking roughly like this:More details:
https://peps.python.org/pep-0668/
https://packaging.python.org/en/latest/specifications/externally-managed-environments/
As a simple workaround we can add
--break-system-packages
to our installation scripttools/env/pip3/deps
. I'm fairly confident that installing the few packages that we need withpip install --user
does not actually break system packages, but the flag is intentionally named so as to "carry some connotation that its use is risky". Setting this flag does not seem like a good permanent solution.Possible alternatives for the dependencies installed in
tools/env/pip3
:The text was updated successfully, but these errors were encountered: