Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
fatzo opened this issue Feb 10, 2024 · 13 comments
Closed

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

fatzo opened this issue Feb 10, 2024 · 13 comments

Comments

@fatzo
Copy link

fatzo commented Feb 10, 2024

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
Copy link
Owner

@lullatscho
Copy link

lullatscho commented Feb 13, 2024

@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
Copy link
Author

fatzo commented Feb 14, 2024 via email

@lullatscho
Copy link

lullatscho commented Feb 14, 2024

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

@reserve85
Copy link
Owner

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

@fatzo
Copy link
Author

fatzo commented Feb 14, 2024

@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
Copy link
Owner

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

@lullatscho
Copy link

@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
Copy link
Owner

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

@fatzo
Copy link
Author

fatzo commented Feb 14, 2024

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
Copy link
Owner

Bist du weiter gekommen?

@lullatscho
Copy link

lullatscho commented Feb 16, 2024

@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
Copy link
Author

fatzo commented Feb 16, 2024

@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

@fatzo fatzo closed this as completed Feb 17, 2024
@raffy1234 raffy1234 mentioned this issue Apr 1, 2024
@reserve85 reserve85 pinned this issue Apr 15, 2024
@reserve85 reserve85 changed the title python versin Python: This environment is externally managed... Apr 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants