Page 1 of 1

install Python modules in Domoticz latest beta

Posted: Saturday 17 May 2025 21:42
by JanJaap
I'm struggling with the update. When trying to install plugins with dependencies using pip2, I get following error.
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.

For more information visit http://rptl.io/venv

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.
When I solve that by

Code: Select all

python3 -m pip config set global.break-system-packages true
sudo pip3  install -r requirements.txt
I get
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Any advice?

Re: install Python modules in Domoticz latest beta

Posted: Saturday 17 May 2025 23:39
by waltervl
I have splitted off your question as it is not related to openssl3.
As Python now uses Python virtual environments this is indeed different now.
With Domoticz you can set a path to where you install your modules. See for more info this topic viewtopic.php?t=42960

Re: install Python modules in Domoticz latest beta

Posted: Sunday 18 May 2025 9:43
by gizmocuz
Depending on your setup complexity you might also want to consider running Domoticz via Docker Compose.
With this python is already using a virtual environment and you can use the normal pip commands.
But when using Docker, you can use a file called customstart.sh where you can install all python/system requirements at the first start of the docker container.

Re: install Python modules in Domoticz latest beta

Posted: Thursday 22 May 2025 19:27
by pipiche
JanJaap wrote: Saturday 17 May 2025 21:42 I'm struggling with the update. When trying to install plugins with dependencies using pip2, I get following error.
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.

For more information visit http://rptl.io/venv

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.
When I solve that by

Code: Select all

python3 -m pip config set global.break-system-packages true
sudo pip3  install -r requirements.txt
I get
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Any advice?
That is indeed a very annoying (but understandable requirement).
You can by pass with the --break-system-packages option in the pip command
Otherwise you can create a specific folder where you'll install all of the Python3 modules. The Domoticz script has been updated to add an extra Environment Variable PYTHONPATH (which is commented by default) and where you can set where the specific python modules can be found.

Re: install Python modules in Domoticz latest beta

Posted: Saturday 24 May 2025 15:29
by gizmocuz
You should never use --break-system-packages

Either use the docker method, or create a folder for the virtual environment and use this