reserve85 / HoymilesZeroExport

Zero Export Script for Hoymiles Inverters using AhoyDTU / OpenDTU and Tasmota Smart Meter inferface / Shelly 3EM / SHRDZM / Emlog / ioBroker
GNU General Public License v3.0
141 stars 33 forks source link

Python: This environment is externally managed... #137

Closed fatzo closed 8 months ago

fatzo commented 8 months ago

Ich bekomme auf einem frisch instaliertem Raspi5 diese fehlermeldung

Feb 10 18:50:37 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Main process exited, code=exited, status=1/FAILURE Feb 10 18:50:37 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Failed with result 'exit-code'. Feb 10 18:50:37 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Scheduled restart job, restart counter is at 4. Feb 10 18:50:37 raspberrypi5 systemd[1]: Stopped HoymilesZeroExport.service - HoymilesZeroExport Service. Feb 10 18:50:38 raspberrypi5 systemd[1]: Started HoymilesZeroExport.service - HoymilesZeroExport Service. Feb 10 18:50:38 raspberrypi5 python3[26099]: Traceback (most recent call last): F*eb 10 18:50:38 raspberrypi5 python3[26099]: File "/home/pi/HoymilesZeroExport/HoymilesZeroExport.py", line 30, in Feb 10 18:50:38 raspberrypi5 python3[26099]: from packaging import version Feb 10 18:50:38 raspberrypi5 python3[26099]: ModuleNotFoundError: No module named 'packaging' Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Main process exited, code=exited, status=1/FAILU**RE Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Failed with result 'exit-code'. Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Scheduled restart job, restart counter is at 5. Feb 10 18:50:38 raspberrypi5 systemd[1]: Stopped HoymilesZeroExport.service - HoymilesZeroExport Service. Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Start request repeated too quickly. Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Failed with result 'exit-code'. Feb 10 18:50:38 raspberrypi5 systemd[1]: Failed to start HoymilesZeroExport.service - HoymilesZeroExport Service.

ich habe schon rausgefunden das es an der Python Versin liegen muss sudo pip3 install argparse error: externally-managed-environment

This environment is externally managed nun komme ich leider nicht weiter hilfe ist willkommen

gruß fatzo

reserve85 commented 8 months ago

Schau mal hier, https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-every-time-i-use-pip-3

da sind mehrere Lösungswege beschrieben.

lullatscho commented 8 months ago

@fatzo Hatte das gleiche Problem, als ich es auf dem Pi5 zum laufen bringen wollte. Debian Bookworm hat defaultmäßig auf dem Pi5 Python3.11 installiert. Man muss sich quasi Python3.9 aus den Sourcen kompilieren und dann installieren.

Am hilfreichsten war das hier https://www.linuxcapable.com/how-to-install-python-3-9-on-debian-linux/ --> musste es aber auch etwas abwandeln

RPI5-Anleitung ist für eine frische Installation von Raspberry Pi OS Lite Release date: December 11th 2023 System: 64-bit Kernel version: 6.1 Debian version: 12 (bookworm) Size: 433MB

Step 1: Update Repos und Installation aller Patches: sudo apt update && sudo apt full-upgrade

Step 2: Benötigte Libs installieren: sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev -y

Step 3: Wechseln ins Home-Directory: cd

Laden der Python Version 3.9.18: wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz

Step 4: Entpacken der geladenen Python Version: tar -xf Python-3.9.18.tgz

Step 5: Wechseln in den soeben entpackten Ordner: cd Python-3.9.18

Step 6: Vorbereitung der Quellen: ./configure --enable-optimizations --enable-shared --with-ensurepip=install

Step 7: Kompilieren der Quellen: make

Step 8: Installieren der Python Version: sudo make altinstall

Anschließend sollte im Pfad /usr/local/lib/ ein Ordner python3.9 existieren.

Prüfen, ob Ordner existiert: ls -sort /usr/local/lib/ Ausgabe -->

ACHTUNG: Falls der Ordner python3.9 nicht im angebenen Pfad existiert nach diesem Schritt ist zuvor etwas schief gelaufen und die folgenden Schritte machen keinen Sinn!

Step 9: Prüfen, ob die Python 3.9 installation die korrekte Version ausgibt: python3.9 --version Ausgabe --> python3.9: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory

Da die Prüfung fehlschlagen sollte im ersten Anlauf, folgenden Befehl ausführen: sudo ldconfig /usr/local/lib/python3.9

Prüfung sollte jetzt die von uns installierte Version ausgeben: 'python3.9 --version' Ausgabe --> Python 3.9.18

Step 10: Wechseln des Verzeichnisses: cd /usr/bin

Aktuelle Verlinkung prüfen (sollte noch auf python3.11 gelinkt sein): ls /usr/bin/python3 -latr Ausgabe --> lrwxrwxrwx 1 root root 24 Feb 13 20:18 /usr/bin/python3 -> /usr/local/bin/python3.11

Löschen des Softlinks: sudo rm python3

Neuen Softlink erstellen: sudo ln -s /usr/local/bin/python3.9 python3

Prüfung des soeben erstellten Softlinks (sollte jetzt auf python3.9 verlinken): ls /usr/bin/python3 -latr Ausgabe --> lrwxrwxrwx 1 root root 24 Feb 13 22:11 /usr/bin/python3 -> /usr/local/bin/python3.9

Step 11: pip3.9 install packaging Ausgabe --> Defaulting to user installation because normal site-packages is not writeable Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting packaging Downloading https://www.piwheels.org/simple/packaging/packaging-23.2-py3-none-any.whl (53 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 53.0/53.0 kB 899.4 kB/s eta 0:00:00 Installing collected packages: packaging Successfully installed packaging-23.2

Anschließend ganz normal nach Anleitung HoymilesZeroExport installieren. Seitdem läufts endlich bei mir.

fatzo commented 8 months ago

Das wäre super. Hab auch schon viele Lösungswege ausprobiert, die nicht funktioniert haben. Dann warte ich auf deinen post Gruß fatzo

Probiere gerade

Gesendet von Outlook für Androidhttps://aka.ms/AAb9ysg


From: lullatscho @.> Sent: Tuesday, February 13, 2024 10:38:42 PM To: reserve85/HoymilesZeroExport @.> Cc: fatzo @.>; Author @.> Subject: Re: [reserve85/HoymilesZeroExport] python versin (Issue #137)

Ich bekomme auf einem frisch instaliertem Raspi5 diese fehlermeldung

Feb 10 18:50:37 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Main process exited, code=exited, status=1/FAILURE Feb 10 18:50:37 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Failed with result 'exit-code'. Feb 10 18:50:37 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Scheduled restart job, restart counter is at 4. Feb 10 18:50:37 raspberrypi5 systemd[1]: Stopped HoymilesZeroExport.service - HoymilesZeroExport Service. Feb 10 18:50:38 raspberrypi5 systemd[1]: Started HoymilesZeroExport.service - HoymilesZeroExport Service. Feb 10 18:50:38 raspberrypi5 python3[26099]: Traceback (most recent call last): F*eb 10 18:50:38 raspberrypi5 python3[26099]: File "/home/pi/HoymilesZeroExport/HoymilesZeroExport.py", line 30, in Feb 10 18:50:38 raspberrypi5 python3[26099]: from packaging import version Feb 10 18:50:38 raspberrypi5 python3[26099]: ModuleNotFoundError: No module named 'packaging' Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Main process exited, code=exited, status=1/FAILU**RE Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Failed with result 'exit-code'. Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Scheduled restart job, restart counter is at 5. Feb 10 18:50:38 raspberrypi5 systemd[1]: Stopped HoymilesZeroExport.service - HoymilesZeroExport Service. Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Start request repeated too quickly. Feb 10 18:50:38 raspberrypi5 systemd[1]: HoymilesZeroExport.service: Failed with result 'exit-code'. Feb 10 18:50:38 raspberrypi5 systemd[1]: Failed to start HoymilesZeroExport.service - HoymilesZeroExport Service.

ich habe schon rausgefunden das es an der Python Versin liegen muss sudo pip3 install argparse error: externally-managed-environment

This environment is externally managed nun komme ich leider nicht weiter hilfe ist willkommen

gruß fatzo

Hatte das gleiche Problem, als ich es auf dem Pi5 zum laufen bringen wollte. Debian Bookworm hat defaultmäßig auf dem Pi5 Python3.11 installiert. Man muss sich quasi Python3.9 aus den Sourcen kompilieren und dann installieren.

Ich versuch das mal hier zu dokumentieren zeitnah, da ich auch ne Weile gebraucht habe und mehrere Lösungswege eher ins Nirwana geführt haben.

Jetzt läuft es aber.

— Reply to this email directly, view it on GitHubhttps://github.com/reserve85/HoymilesZeroExport/issues/137#issuecomment-1942654871, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A3B7XLHZ4LLD6RD4ACVQGQLYTPMOFAVCNFSM6AAAAABDC4DZF2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBSGY2TIOBXGE. You are receiving this because you authored the thread.Message ID: @.***>

lullatscho commented 8 months ago

@fatzo Habe es oben bereits angepasst. Probier es mal aus und geb mal Rückmeldung, ob es bei dir ebenso anschließend funktioniert.

reserve85 commented 8 months ago

Wenn das funktioniert dann würde ich das anheften oder in eine FAQ speichern…

fatzo commented 8 months ago

@fatzo Habe es oben bereits angepasst. Probier es mal aus und geb mal Rückmeldung, ob es bei dir ebenso anschließend funktioniert.

Bin gerade dabei

reserve85 commented 8 months ago

Übeogens hab ich durch Zufall gesehen, dass bei ahoy auch ein pull request zu dem Thema gibt. https://github.com/lumapu/ahoy/pull/1392 vielleicht könnt ihr ja mal überprüfen wie es dort gemacht wird (im diff der readme)

lullatscho commented 8 months ago

@reserve85 hab mir das mal angeschaut. Dort wird das über das Virtual Environment (venv) gelöst. Das hatte ich auch irgendwo gelesen mit dem venv, aber hab es nicht so richtig durchblickt auf die schnelle.

reserve85 commented 8 months ago

Ja ich auch nicht und ich habe Gottseidank das Problem nicht 😁

fatzo commented 8 months ago

Step 8 funktioniert noch danach

Step 9:

xxx@raspberrypi:/usr/bin $ python3.9 --version python3.9: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory xxx@raspberrypi:/usr/bin $ sudo ldconfig /usr/local/lib/python3.9 xxx@raspberrypi:/usr/bin $ python3.9 --version Python 3.9.18

womit muss ich das xxx ersetzen oder den pfad? bei mir liegt das Pyhton in: /home/pi/Python-3.9.18

Fehlermeldung

pi@raspberrypi5:~/Python-3.9.18 $ xxx@raspberrypi:/usr/bin $ python3.9 --version python3.9: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory xxx@raspberrypi:/usr/bin $ sudo ldconfig /usr/local/lib/python3.9 xxx@raspberrypi:/usr/bin $ python3.9 --version Python 3.9.18 bash: xxx@raspberrypi:/usr/bin: Datei oder Verzeichnis nicht gefunden bash: python3.9:: Kommando nicht gefunden. bash: xxx@raspberrypi:/usr/bin: Datei oder Verzeichnis nicht gefunden bash: xxx@raspberrypi:/usr/bin: Datei oder Verzeichnis nicht gefunden bash: Python: Kommando nicht gefunden.

reserve85 commented 8 months ago

Bist du weiter gekommen?

lullatscho commented 8 months ago

@fatzo

Wir können sonst gern mal zusammen drauf schauen.

Schau bitte oben nochmal in meinen Kommentar. Ich habe die Formatierung und die Eingabe nochmal etwas angepasst, damit es übersichtlicher und eindeutiger wird.

Der Ordner den du anmerkst ist der entpackte Ordner in deinem Home-Verzeichnis. In den solltest du in Step 5 wechseln und die folgenden Schritte 6, 7 und 8 ausführen. Bei Step 8 hab ich noch hinzugefügt wie du checkst, dass dieser Ordner dann existiert.

fatzo commented 8 months ago

@fatzo

Wir können sonst gern mal zusammen drauf schauen.

Schau bitte oben nochmal in meinen Kommentar. Ich habe die Formatierung und die Eingabe nochmal etwas angepasst, damit es übersichtlicher und eindeutiger wird.

Der Ordner den du anmerkst ist der entpackte Ordner in deinem Home-Verzeichnis. In den solltest du in Step 5 wechseln und die folgenden Schritte 6, 7 und 8 ausführen. Bei Step 8 hab ich noch hinzugefügt wie du checkst, dass dieser Ordner dann existiert.

Vielen dank jetzt hat es funktioniert. Ich bedanke mich bei euch/dir 🥇

Ich habe nochmals neu instaliert den Raspberry und bin dann nach deinem erweitertem post vorgegangen. Danach muste ich nur noch die Dtu auf das neueste Release v24.2.12 updaten. Nun ein Start ohne Fehler, allerdings ist es schon dunkel und morgen kann ich dann sagen ob es 100% läuft

gruß vom Unwissenden :-)

Update 8:41 Uhr Moin wollte nur bescheid geben, läuft durch und regelt