Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
das Plugin jsonread verwendet das Modul pyjq, welches bis August 22 nur bis Python 3.9 lauffähig war. Die aktuellste Version von pyjq 2.6 funktioniert auch mit Python 3.10.
Das kann einfach in der requirements.txt des Plugins eingetragen werden. Ich tage das in den kommenden Tagen dort ein.
Nur zur Sicherheit: Funktioniert die pyjq v2.6 auch mit allen alten Versionen von Python oder muss für eine ältere Python Version ein spezielles Requirement eingetragen werden?
Nachtrag:
Ich habe gerade im Changelog nachgesehen und folgendes gefunden:
Code:
2.6.0
* Supports 3.10
2.5.1
* Fixed typo.
2.5.0
* Supports only 3.7+.
2.4.0
* Dropped support for Python 2.7, 3.4, 3.5 (Supports only 3.6+).
Also sollte Python 3.7 bis 3.10 unterstützt sein. Das passt für SmarthomeNG, da v1.9.x nur auf Python 3.7 und neuer läuft.
Python 311 wird nicht erwähnt. Sollte die Kompatibilität auf Python 3.10 beschränkt werden oder sollten (ungetestet) auch die neueren Python Versionen akzeptiert werden?
Zuletzt geändert von Msinn; 16.11.2022, 11:28.
Grund: Nachtrag ergänzt
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Ersatz für das jsonrad Plugin, was nach eigenem Bekunden ja nicht mit 3.10 fkt
Ich habs jetzt auch ans Fliegen bekommen, aber für die Zukunft ist das ja keine Lösung oder?
Derzeit zwischen Kistenauspacken und Garten anlegen.
Baublog im Profil.
Interessant. Mein 3.10.12 hat smarthome-ng nicht gestört. Es läuft prima damit. Es steht dazu auch nix in den Logs.
Dass keine Unittests unter Python 3.10 durchgeführt wurden bedeutet ja nicht gleich, dass es nicht funktioniert.
Allerdings wissen die Plugin Autoren, welche Versionen unterstützt werden, weshalb ich nicht erwarte, dass ein Plugin für SmartHomeNG Python 3.10 unterstützt.
Die Requirements der Plugins werden da dann strenger geprüft?
Wie soll man Requirements strenger prüfen? und was soll eine Prüfung ergeben?
Die Requirements steuern nur die automatische Installation der benötigten Packages
Die Unittests, die für die supporteten Python durchgeführt werden sind übrigens vorwiegend Tests für den Core von SmartHomeNG. Leider liefern nur sehr wenige Plugin Autoren auch Unittests für ihre Plugin mit.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Ich möchte diese Thema nochmal aufwärmen.
Ich habe das neue Raspi V1.10 Image installiert (python 3.10).
Jetzt bekomme ich das jsonread plugin nicht zum Laufen:
Code:
plugin 'jsonread' v1.0.3: The Python version v3.10.13 is too new for this plugin. It requires a version up to v3.9.999. The plugin was not loaded.
Jetzt habe ich gelesen, dass es grundsätzlich am py modul pyjq liegt, dass hier in der plugin.yaml steht:
Code:
py_maxversion: 3.9
Scheinbar gibt es aber bereits eine Version von pyjq (Version V2.6), welche mit python 3.10 kompatibel ist.
Aber wie bekommen ich das Plugin jetzt konfiguriert bzw. pijq upgedated, damit es das Plugin exekutiert?
Ich habe probehalber mal
Code:
py_maxversion: 3.10
probiert mit folgendem Resultat:
Code:
plugin 'jsonread' v1.0.3: The Python version v3.10.13 is too new for this plugin. It requires a version up to v3.1.999. The plugin was not loaded.
Offensichtlich geht hier der Check schief von 3.10 --> 3.1.
Wäre toll, wenn mir Jemand sagen kann, wie ich das plugin mit der aktuellen python Version zum Laufen bringen kann.
Jedoch leider ohne Erfolg. Wenn ich das mache (ausblenden), dann erreiche ich die Admin Oberfläche nicht mehr.
Erst wenn ich es wieder einblende - dann sehe ich diese Logs (wiederholen sich dann ständig ...)
Code:
2024-03-01 20:01:40 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.10.0-master (4b25822a0) --------------------
2024-03-01 20:01:40 NOTICE lib.smarthome Running in Python interpreter 'v3.10.13 final' in virtual environment, from directory /usr/local/smarthome
2024-03-01 20:01:40 NOTICE lib.smarthome - operating system 'Debian GNU/Linux 12 (bookworm)' (pid=732)
2024-03-01 20:01:40 NOTICE lib.smarthome - on 'Raspberry Pi 3 Model B+ v1.3, 1GB (Sony, UK)'
2024-03-01 20:02:02 WARNING lib.shpypi test_requirements: 'requests-file' not installed, any version needed
2024-03-01 20:02:02 NOTICE lib.shpypi Installing plugin requirements for the current user, please wait...
2024-03-01 20:02:02 NOTICE lib.shpypi Using auto-determined PIP: '/usr/local/smarthome/venvs/py_310/bin/pip3'
2024-03-01 20:02:06 NOTICE lib.shpypi Running in a virtualenv environment - installing plugin requirements only to current virtual environment, please wait...
2024-03-01 20:02:12 ERROR lib.shpypi
[notice] A new release of pip is available: 23.0.1 -> 24.0
[notice] To update, run: pip3 install --upgrade pip
2024-03-01 20:02:12 CRITICAL lib.smarthome Python package requirements for configured plugins are not met and unable to install those requirements
2024-03-01 20:02:12 CRITICAL lib.smarthome Do you have multiple Python3 Versions installed? Maybe PIP3 looks into a wrong Python environment. Try to configure pip_command in etc/smarthome.yaml
2024-03-01 20:02:12 CRITICAL lib.smarthome Aborting
Das Problem beim Start kannst du beheben, indem du /usr/local/smarthome/venvs/py_310/bin/pip3 install pyjq ausführst, denke ich.
Warum das nicht sauber beim Start funzt, ist mir nicht ganz klar. Ist bei mir manchmal auch passiert, aber nicht immer. das mit den virtual envs macht irgendwie ab und an Probleme..
So, nach längerem hin und her habe ich es nun doch zum Laufen gebracht.
Was habe ich gemacht:
In der
Code:
/usr/local/smarthome/plugins/jsonread/plugin.yaml
habe ich
Code:
py_maxversion
auskommentiert. Ein raufsetzen der Version auf 3.11 oder 3.12 funktioniert nicht, da dies in weiterer Folge als Version 3.1 interpretiert wird (siehe hierzu Eintrag https://github.com/smarthomeNG/smarthome/issues/642).
Allerdings löste dies das Problem nicht. Vorerst mal kommt man mit dieser Maßnahme nicht mal mehr auf die Admin Oberfläche.
Da pyjq Version 2.6.0 benötigt wird, ist es notwendig den pip Installer auf Version 24.0 hochzuziehen.
Warum auch immer, muss das direkt aus dem virtual environment folder vom smarthome gemacht werden:
Code:
cd /usr/local/smarthome/venvs/py_310/bin/
./pip3 install --upgrade pip
Sicherheitshalber habe ich das auch für python 3.11 gemacht:
Code:
cd /usr/local/smarthome/venvs/py_311/bin/
./pip3 install --upgrade pip
Da explizit die Version 2.6.0 für pyjq gefordert ist, habe ich unter
Code:
cd /usr/local/smarthome/plugins/jsonread/
sudo nano requirements.txt
die Version von pyjq eindeutig definiert:
Code:
pyjq==2.6.0
Dann zurück zu python 3.10 und die Installation der Anforderungen entsprechend der requirements.txt manuell angestoßen:
Code:
cd /usr/local/smarthome/venvs/py_310/bin/
./pip3 install -r ../../../plugins/jsonread/requirements.txt
Einen reboot gemacht - und siehe da, plötzlich funktioniert es.
Wahrscheinlich ginge das alles viel einfacher, aber so hat es bei mir funktioniert - möglicherweise ist es für jemanden brauchbar.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar