can't access python requests module
Moderator: leecollings
-
- Posts: 2
- Joined: Thursday 17 September 2015 15:59
- Target OS: Linux
- Domoticz version:
- Location: Norway
- Contact:
can't access python requests module
Hi, I'll start with sofware versions:
Version: 2021.1
Build Hash: 8547c5b7e
Compile Date: 2021-04-17 17:29:11
dzVents Version: 3.1.7
Python Version: 3.9.2 (default, Mar 12 2021, 04:06:34) [GCC 10.2.1 20210110]
I'm on a raspberry pi running no GUI-version of (I think the the latest) raspbian
I'm making a script where I want to use the requests module to call an API.
However I can not get the module to load. I've now simplified down to this:
"#!/usr/lib/python3/dist-packages/" #I found advice in another thread about adding the path like this - did not work.
import requests
I get the error:
2022-01-11 16:19:00.185 Error: EventSystem: Failed to execute python event script "/home/pi/domoticz/scripts/python/script_time_sjekknoe.py"
2022-01-11 16:19:00.186 Error: EventSystem: Traceback (most recent call last):
2022-01-11 16:19:00.186 Error: EventSystem: File "/home/pi/domoticz/scripts/python/script_time_sjekknoe.py", line 2, in <module>
2022-01-11 16:19:00.186 Error: EventSystem: import requests
2022-01-11 16:19:00.186 Error: EventSystem: ModuleNotFoundError: No module named 'requests'
How to I tell domoticz to look for the module in the right place? It works fine when I run python in the console.
I've tried adding it with sys, but that doesn't seem to work either
Version: 2021.1
Build Hash: 8547c5b7e
Compile Date: 2021-04-17 17:29:11
dzVents Version: 3.1.7
Python Version: 3.9.2 (default, Mar 12 2021, 04:06:34) [GCC 10.2.1 20210110]
I'm on a raspberry pi running no GUI-version of (I think the the latest) raspbian
I'm making a script where I want to use the requests module to call an API.
However I can not get the module to load. I've now simplified down to this:
"#!/usr/lib/python3/dist-packages/" #I found advice in another thread about adding the path like this - did not work.
import requests
I get the error:
2022-01-11 16:19:00.185 Error: EventSystem: Failed to execute python event script "/home/pi/domoticz/scripts/python/script_time_sjekknoe.py"
2022-01-11 16:19:00.186 Error: EventSystem: Traceback (most recent call last):
2022-01-11 16:19:00.186 Error: EventSystem: File "/home/pi/domoticz/scripts/python/script_time_sjekknoe.py", line 2, in <module>
2022-01-11 16:19:00.186 Error: EventSystem: import requests
2022-01-11 16:19:00.186 Error: EventSystem: ModuleNotFoundError: No module named 'requests'
How to I tell domoticz to look for the module in the right place? It works fine when I run python in the console.
I've tried adding it with sys, but that doesn't seem to work either
- waltervl
- Posts: 5148
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: can't access python requests module
Try to install the request module with sudo as Domoticz will probably run as root.
There is currently a big issue with python plugins on bullseye. It is sidenote: known and a fix is close but until that there is no other way than wait, downgrade to Buster or use a docker environment.
There is currently a big issue with python plugins on bullseye. It is sidenote: known and a fix is close but until that there is no other way than wait, downgrade to Buster or use a docker environment.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
-
- Posts: 2
- Joined: Thursday 17 September 2015 15:59
- Target OS: Linux
- Domoticz version:
- Location: Norway
- Contact:
Re: can't access python requests module
@waltervl Thanks for your reply!
I actually just figured it out, I must have misspelled something the first time around. I wrote this code for my script and this problem is now solved:
Thanks for your reply though. I don't intend to use any plugins for now, I'm however working on a script to adjust my heaters based on electricity price, and I'm using python this time because I used it more recently and coding with it would be quite effortless if I didn't have to struggle with the implementation. My next problem is that writing to user variables doesn't seem to work... I might be able to do without it though as long as changing state of devices still works (I haven't checked)
I actually just figured it out, I must have misspelled something the first time around. I wrote this code for my script and this problem is now solved:
Code: Select all
import DomoticzEvents as DE
import sys
if '/usr/lib/python3/dist-packages/' not in sys.path :
DE.Log('Path not found')
sys.path.append('/usr/lib/python3/dist-packages/')
DE.Log('Path added')
else:
DE.Log('Path found')
import requests
-
- Posts: 56
- Joined: Monday 28 November 2016 20:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Latest
- Location: Netherlands
- Contact:
Re: can't access python requests module
Is there a fix on bullseye for this now, because i have the same problem with a import requests on a python scriptwaltervl wrote: ↑Tuesday 11 January 2022 22:21 Try to install the request module with sudo as Domoticz will probably run as root.
There is currently a big issue with python plugins on bullseye. It is sidenote: known and a fix is close but until that there is no other way than wait, downgrade to Buster or use a docker environment.
- waltervl
- Posts: 5148
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: can't access python requests module
That is all fixed in 2022.2 and later.
There are still some issues when you define sub functions in your python script, see for example viewtopic.php?p=297430
There are still some issues when you define sub functions in your python script, see for example viewtopic.php?p=297430
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
-
- Posts: 56
- Joined: Monday 28 November 2016 20:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Latest
- Location: Netherlands
- Contact:
Re: can't access python requests module
i want to use a python script for my toon because when i let it run by DzVents i get random errors like "Toon has been running for more then 10 seconds".waltervl wrote: ↑Wednesday 12 April 2023 9:48 That is all fixed in 2022.2 and later.
There are still some issues when you define sub functions in your python script, see for example viewtopic.php?p=297430
So i want to use the following python script:
Code: Select all
import json
import os
import requests
ToonThermostat = 'Toon Thermostaat'
ToonTemperature = 'Temp Woonkamer'
ToonIP = '192.168.100.130'
DomoticzIP = '192.168.100.140:8080'
def update_temperatures():
url = "http://{ToonIP}/happ_thermstat?action=getThermostatInfo"
response = requests.get(url)
if response.status_code == 200:
thermostat_info = json.loads(response.content)
current_setpoint = thermostat_info['currentSetpoint'] / 100
current_temperature = thermostat_info['currentTemp'] / 100
current_temperature = round(current_temperature, 1)
if round(domoticz.devices(ToonThermostat).setPoint * 100) != round(current_setpoint * 100):
domoticz.log('Update van de temperatuur instelling naar: ' + str(current_setpoint) + ' °C', domoticz.LOG_FORCE)
domoticz.devices(ToonThermostat).updateSetPoint(current_setpoint)
if round(domoticz.utils.round(domoticz.devices(ToonTemperature).temperature, 1)) != round(current_temperature, 1):
domoticz.log('Update van de Kamertemparatuur : ' + str(current_temperature) + ' °C', domoticz.LOG_FORCE)
domoticz.devices(ToonTemperature).updateTemperature(current_temperature)
def execute(domoticz):
if debug:
domoticz.log('DEBUG: Script uitvoeren', domoticz.LOG_INFO)
update_temperatures()
return {
'on': {'timer': {'every minute'}},
'logging': {'level': domoticz.LOG_ERROR, 'marker': 'scriptVar'},
'execute': execute
}
when i run this in domoticz in events ill get the following error:
Code: Select all
File "ToonPY", line 3, in <module>
Error: ModuleNotFoundError: No module named 'requests'
Code: Select all
Requirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (2.28.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests) (3.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests) (1.26.15)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests) (2022.12.7)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.9/dist-packages (from requests) (3.1.0)
- waltervl
- Posts: 5148
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: can't access python requests module
Seems the same issue as discussed in the other topic I referred to.
Your Dzvents issue is probably easier to solve. Did you use the async way of calling openUrl()?
Your Dzvents issue is probably easier to solve. Did you use the async way of calling openUrl()?
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
-
- Posts: 56
- Joined: Monday 28 November 2016 20:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Latest
- Location: Netherlands
- Contact:
Re: can't access python requests module
My coding skills are not that good to fully understand what you mean by "the async way of calling openUrl()"
- waltervl
- Posts: 5148
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: can't access python requests module
It is discussed in the Dzvents documentation: https://www.domoticz.com/wiki/DzVents:_ ... P_requests
The use of callback will make that a slow http connection will not stall your scripts.
The use of callback will make that a slow http connection will not stall your scripts.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Who is online
Users browsing this forum: No registered users and 0 guests