[Ubuntu] Python environment for QGIS (externally-managed-environment)
Martin Weis
martin.weis.newsadress at gmx.de
Tue Dec 10 15:44:49 PST 2024
Dear list,
I am currently not sure how to properly handle the
`externally-managed-environment` python installation for QGIS plugins
(and other software).
pip is now actively discouraged to install system-wide or per user - for
good reasons, but solved some dependencies easily for me.
Basically it would make sense to have a venv defined for QGIS, where pip
can install packages. Not all dependencies can be found/installed via
apt, some packages even may need special version pinning.
Is there a recommended way to define and start such an environment for
QGIS? Having a simple wrapper script might do for my own use case, but
can such an environment be defined/integrated/deployed properly and used
at startup?
This ancient SE question is about it
https://gis.stackexchange.com/questions/131932/starting-qgis-with-virtualenv-python
and here is a working helper script to create a QGIS python environment:
https://github.com/GispoCoding/qgis-venv-creator
Thank you for your work and input!
Martin
> $ pip install
> 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.
More information about the Ubuntu
mailing list