Ankündigung

Einklappen
Keine Ankündigung bisher.

jsonread / python 3.10

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    jsonread / python 3.10

    Hallo,

    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.

    Wie zieht man das am besten nach?

    Schon mal besten Dank.

    #2
    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.

    Kommentar


      #3
      Danke Msinn.

      Hab das mal getestet mit pyjq 2.6 und Python 3.10. Das Plugin funktioniert wie gewünscht
      Zuletzt geändert von stoner1801; 20.11.2022, 21:08. Grund: typo

      Kommentar


        #4
        Ich stehe an der gleichen Stelle. Was trägt man da jetzt ein?
        Habe auch auf Python 3.10 geupdatet...
        Gibts sonst ein Ersatzplugin?

        Derzeit zwischen Kistenauspacken und Garten anlegen.
        Baublog im Profil.

        Kommentar


          #5
          Ersatz für was?
          Viele Grüße
          Martin

          There is no cloud. It's only someone else's computer.

          Kommentar


            #6
            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.

            Kommentar


              #7
              Wieso erwartest Du, dass ein Plugin Python 3.10 unterstützt, wenn SmartHomeNG selbst bisher nur Python 3.9 unterstützt?
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                Interessant. Mein 3.10.12 hat smarthome-ng nicht gestört. Es läuft prima damit. Es steht dazu auch nix in den Logs.
                2023-09-04 00:09:15 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.9.3-master (aa143b82) --------------------
                2023-09-04 00:09:15 NOTICE lib.smarthome Running in Python interpreter 'v3.10.12 final', from directory /usr/local/smarthome
                Die Requirements der Plugins werden da dann strenger geprüft?
                Derzeit zwischen Kistenauspacken und Garten anlegen.
                Baublog im Profil.

                Kommentar


                  #9
                  Zitat von greentux Beitrag anzeigen
                  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.

                  Zitat von greentux Beitrag anzeigen
                  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.

                  Kommentar


                    #10
                    Hallo,

                    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.

                    Vielen Dank!

                    Kommentar


                      #11
                      berti
                      Du kannst
                      Code:
                      py_maxversion: 3.10
                      einfach im Plugin auskommentieren. Danach klappt es ohne Probleme mit 3.11.

                      Hab ich ebenso gemacht und läuft ohne Probleme.

                      Kommentar


                        #12
                        Danke für die rasche Antwort!

                        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​

                        Kommentar


                          #13
                          Das mit der Pythonversion ist schräg, hab hier mal ein Issue erstellt: https://github.com/smarthomeNG/smarthome/issues/642
                          Da das Plugin mit 3.11 funzt, hab ich das aktualisiert, kommt demnächst in den Develop. Gerne testen (manuell die Änderungen rüber ziehen) https://github.com/smarthomeNG/plugins/pull/921

                          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..

                          Kommentar


                            #14
                            Das Issue habe ich kommentiert. Aus meiner Sicht ist das kein Issue, sondern "works as designed"

                            Zitat von Onkelandy Beitrag anzeigen
                            das mit den virtual envs macht irgendwie ab und an Probleme..
                            Kannst Du das genauer beschreiben, so ist das für mich nur ein nicht haltbares Gerücht.
                            Viele Grüße
                            Martin

                            There is no cloud. It's only someone else's computer.

                            Kommentar


                              #15
                              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 a​ngestoß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.

                              Kommentar

                              Lädt...
                              X