Skip to content

Commit f48c383

Browse files
committed
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/
1 parent 9031424 commit f48c383

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

.github/workflows/install.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272
shell: bash
7373
run: |
7474
set -x
75-
python3 -m pip install -I -v .
75+
python3 -m pip install -I -v --break-system-packages .
7676
# Avoid importing the systemd module from the git repository
7777
cd /
7878
python3 -c 'from systemd import journal; print(journal.__version__)'

0 commit comments

Comments
 (0)