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
Workaround externally managed environment issue in Python 3.11
Around the beginning of 2025, the `ubuntu-latest` runner image
which [this project uses][1], [was changed from Ubuntu 22.04 to 24.04][2].
As a result, the python version which is used by this repo's GitHub actions
changed from [3.10.12][3] to [3.12.3][4].
With this change to Python 3.12, [PEP 668][5] was introduced. This new Python
behavior is causing errors in the CI and `pip` is exiting non-zero
```
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.
```
This adds a `--break-system-packages` argument to the `pip install` so that
it can continue to install packages without an error.
A possible future improvement would be to do these installations in a virtual
environment.
[1]: https://github.com/systemd/python-systemd/blob/903142423452c4dd18110b7f8a953dabb2031e49/.github/workflows/install.yml#L17
[2]: actions/runner-images#10636
[3]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#installed-software
[4]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md#language-and-runtime
[5]: https://peps.python.org/pep-0668/
0 commit comments