install Python modules in Domoticz latest beta

Python and python framework

Moderator: leecollings

Post Reply
JanJaap
Posts: 210
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

install Python modules in Domoticz latest beta

Post 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?
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
User avatar
waltervl
Posts: 5741
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2024.7
Location: NL
Contact:

Re: install Python modules in Domoticz latest beta

Post 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
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
User avatar
gizmocuz
Posts: 2486
Joined: Thursday 11 July 2013 18:59
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: Top of the world
Contact:

Re: install Python modules in Domoticz latest beta

Post 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.
Quality outlives Quantity!
pipiche
Posts: 2006
Joined: Monday 02 April 2018 20:33
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: France
Contact:

Re: install Python modules in Domoticz latest beta

Post 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.
Zigbee for Domoticz plugin / RPI3B+ / Electrolama ZZH-P / 45 devices

If the plugin provides you value, you can support me with a donation Paypal.

Wiki is available here.

Zigbee for Domoticz FAQ
User avatar
gizmocuz
Posts: 2486
Joined: Thursday 11 July 2013 18:59
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: Top of the world
Contact:

Re: install Python modules in Domoticz latest beta

Post 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
Quality outlives Quantity!
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest