Ankündigung

Einklappen
Keine Ankündigung bisher.

Update auf 1.12.2 schlägt fehl

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

    Update auf 1.12.2 schlägt fehl

    Hallo mal wieder,

    ich wollte das Update auf die aktuelle Version machen, aber beide Varianten (mit git pull und als neuen Ordner) scheitern mit folgender Meldung:

    Installing core requirements for the current user, please wait...
    Using auto-determined PIP: '/usr/local/smarthome/venvs/py_shng/bin/pip3'

    Running in a virtual environment environment,
    installing core requirements only to current virtual environment, please wait...

    core requirements installed

    Starting SmartHomeNG again...
    Waiting for restart...
    Traceback (most recent call last):
    File "/usr/local/smarthome/bin/smarthome.py", line 218, in <module>
    from lib.smarthome import SmartHome
    File "/usr/local/smarthome/lib/smarthome.py", line 73, in <module>
    import lib.config
    File "/usr/local/smarthome/lib/config.py", line 75, in <module>
    def parse_itemsdir(itemsdir, item_conf, addfilenames=False, struct_dict: dict | None = None):
    TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'​
    Aus- und wieder eingeloggt hatte ich mich. Damit geht jetzt erstmal nix mehr und vielleicht könnt ihr mir wieder mal weiterhelfen.

    Viele Grüße
    Andi
    Zuletzt geändert von bmx; 19.07.2026, 16:08.

    #2
    Moin Andi,

    Das liegt vermutlich an der Python-Version. Welche ist bei Dir installiert?

    Gruß
    Wolfram

    Kommentar


      #3
      die 3.9.2 unter Debian 11
      Zuletzt geändert von awknx; 19.07.2026, 15:04.

      Kommentar


        #4
        Der Ausdruck
        Code:
        struct_dict: dict | None = None
        wird erst ab Python3.10 unterstützt, siehe hier.
        Die Aussage zur minimalen Python-Version in der Release-Ankündigung ist deshalb wohl nicht richtig.
        Du brauchst entweder eine neuere Python-Version, oder einen Workaround.

        Kommentar


          #5
          Alternativ kannst Du versuchen, auf v1.12.0 zurück zu gehen:
          Code:
          git checkout v1.12.0
          Das musst Du im Ordner smarthome und smarthome/plugins machen. Dann zur Sicherheit noch die Requirements vergleichen, ob Du für irgendein Python-Paket noch auf eine ältere Version zuück gehen musst.

          Kommentar


            #6
            Du kannst Dir auch Python 3.10 installieren, Msinn hat das mal dokumentiert.

            Aber ich frage ich welche Gründe es gibt nicht auf Debian 12 zu aktualisieren? Python 3.9 bekommt seit Oktober 2025 keine Sicherheitspatches mehr und Debian 11 läuft im August 2026 aus den Patches (LTS) raus.

            Kommentar


              #7
              Die älteste offiziell unterstützte Python-Version ist 3.10. - die Aussage im Release ist faktisch inkorrekt ("läuft ggf. auf 3.9"), das habe ich tatsächlich nicht im Blick gehabt.

              Dass wir ältere Python-Versionen nicht mehr unterstützen, liegt neben neuen Sprachfeatures ja auch an den fehlenden Sicherheitsupdates, auch wenn das auf isolierten Heimrechnern vielleicht nicht so eine große Rolle spielen muss.

              Da 1.12.1 fehlerhaft ist (wurde mit 1.12.2 korrigiert), wäre für dich zu überlegen, ob du die neuen Funktionen in 1.12.2 nutzen möchtest und dafür Python (ggf. sogar Debian) aktualisierst, oder bis auf Weiteres auf der älteren Version bleibst. Mit dem nächsten "Major"-Release (1.13 oder 2.0) wird auch der Support für Python 3.10 aufgegeben, insofern ist die Entscheidung, bei 3.9 zu bleiben, dann wieder zu überlegen. (Ich würde Debian updaten...)

              Kommentar


                #8
                Erst mal Danke euch Allen.

                Ich bin gerade lost...

                Mein Problem sind derzeit noch zwei BBB mit Roberts Cape, dass ich trotz Hilfe nicht zum Laufen bekomme. Gut, dass ich für die meisten Funktionen einfach noch meine KNX-Schalter habe :-)

                Auf dem 2. BBB hab ich Debian 13 installiert, da ist Python 3.13.5 dann vorinstalliert. Den 1. BBB hab ich mir mit dem Update von SHNG und Python 3.10 gerade etwas zerschossen, weil er mir noch Python 3.9 anzeigt.

                Jetzt baue ich mal eine VM auf, damit ich da mehr Ruhe hab :-))

                Kommentar


                  #9
                  Den Symlink python3 hast Du auf den Ordner python3.10 umgestellt? Wenn nicht, wird weiter Python3.9 aufgerufen, das ja parallel installiert bleibt.

                  Kommentar


                    #10
                    Natürlich nicht, da fehlt mir die Ahnung...

                    Kommentar


                      #11
                      Wenn Du Python3.10 nach der Anleitung installiert hast, dann findest Du im Ordner ./bin je einen Ordner „python3.9“ und „python3.10“, sowie den Symlink „python3 -> /usr/bin/python3.9“.
                      letzteren löschst Du und legst ihn neu für 3.10 an.
                      Code:
                      sudo rm python3
                      sudo ln -sfn /usr/bin/python3.10 python3

                      Alternativ kannst Du smarthomeNG auch direkt in python3.10 starten:
                      Code:
                      cd /usr/local/smarthome
                      python3.10 bin/smarthome.py

                      Kommentar


                        #12
                        Hi Wolfram,

                        im Ordner /bin finde ich keine Unterordner, sondern nur Dateien. Im Ordner /usr/lib liegt je ein Ordner python2.7, python3 und python3.9 und im Ordner /usr/local/lib ein Ordner python3.10

                        Das unterscheidet sich schon grundlegend.

                        Auf dem zweiten BBB mit Debian13 liegt nun in /usr/local/lib ein Ordner python3.13. Auch da liegen in bin keine Unterordner

                        Kommentar


                          #13
                          Sorry, Du hast recht. Das sind die Binaries in /bin. Das habe ich mit den Ordnern in /usr/lib verwechselt.
                          Dennoch müsstest Du shNG mit python3.10 manuell starten können ( siehe oben, zweiter Code-Block). Hast Du das probiert?
                          Und wenn Du sonst keine Python Skripte ausführst, die Python3.9 benötigen, dann kanst Du auch den Symlink „python3 -> /usr/bin/python3.9“ ändern.

                          Kommentar


                            #14
                            Die Symlinks finde ich auch gerade nocht nicht. Der manuelle Start klappt leider auch nicht:

                            smarthome@Beaglebone:/usr/local/smarthome$ python3.10 bin/smarthome.py

                            test_requirements: 'babel' not installed, any version needed
                            test_requirements: 'ephem' not installed. Minimum v4.2 needed
                            test_requirements: 'holidays' not installed. Minimum v0.59 needed
                            test_requirements: 'netifaces2' not installed, any version needed
                            test_requirements: 'portalocker' not installed. Minimum v3.2.0 needed
                            test_requirements: 'psutil' not installed. Minimum v6.1.1 needed
                            test_requirements: 'python-dateutil' not installed. Minimum v2.9.0 needed
                            test_requirements: 'pytz' not installed, any version needed
                            test_requirements: 'requests' not installed. Minimum v2.31.0 needed
                            test_requirements: 'ruamel.yaml' not installed. Minimum v0.15.78 needed
                            test_requirements: 'xmltodict' not installed, any version needed

                            Installing core requirements for the current user, please wait...
                            Using auto-determined PIP: '/usr/local/bin/pip3'

                            ERROR:
                            /bin/sh: 1: /usr/local/bin/pip3: not found

                            ERROR: Unable to install core requirements
                            Use the commandline option --pip3_command to specify the path to the command

                            Kommentar


                              #15
                              probier mal "python3.10 -m pip list". Ich würde grundsätzlich ein virtualenv einrichten, das ist unter https://smarthomeng.github.io/smarth...ironments.html beschrieben, vielleicht hilft dir das?

                              Kommentar

                              Lädt...
                              X