I am trying to write a python script on an Ubuntu box. I had it working fine on another box, but now cannot get it to install some libraries. Keep getting the "externally-managed-environment" error.
However, I am using a venv.
Python 3 is installed.
I've run:
apt install python3-pip -y
and
apt install python3-venv
Create the venv:
python3 -m venv sensu-venv
Activate it
source sensu-venv/bin/activate
So now my prompt looks like
(sensu-venv) ubuntu@ip-xxx-xxx-xxx-xxx:~/listener
Output of which python3
is "/home/ubuntu/listener/sensu-venv/bin/python3"
I have then run every combination of pip install
but get the same result:
python -m pip install pika --upgrade
python3 -m pip install pika --upgrade
pip install pika --upgrade
pip3 install pika --upgrade
But always get the externally managed error.
Have tried deactivate/delete the venv subdirectory, recreate.
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.