Skip to content

Commit c91a4e9

Browse files
committed
testnode: Force install of pip packages globally on Ubuntu >=24
Fixes: ``` 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. ``` Signed-off-by: David Galloway <david.galloway@ibm.com>
1 parent 9768af6 commit c91a4e9

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

roles/testnode/tasks/pip.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,12 @@
5959
pip:
6060
name: "{{ pip_packages_to_install|list }}"
6161
executable: "{{ pip_executable }}"
62+
when: ansible_distribution != 'Ubuntu' or
63+
(ansible_distribution == 'Ubuntu' and ansible_distribution_major_version|int < 24)
64+
65+
- name: Install packages via pip (Ubuntu >= 24)
66+
pip:
67+
name: "{{ pip_packages_to_install|list }}"
68+
executable: "{{ pip_executable }}"
69+
extra_args: --break-system-packages
70+
when: ansible_distribution == 'Ubuntu' and ansible_distribution_major_version|int >= 24

0 commit comments

Comments
 (0)