Forum: Mikrocontroller und Digitale Elektronik Wohin am Python Module beim Raspberry pi


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Oisean (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Könnt ihr mir bei folgendem helfen? Ich spiele gerade mit meinem neuen 
Raspberry pi 3b und versuche mehr und mehr zu lernen. Dabei geht es auch 
primär um Python und da bin ich auch schon auf die erste Hürde gestoßen.

Schließe ich etwas an, wofür es eine fertiges Modul gibt, finde ich es 
nicht verwerflich, das auch zu benutzen. Ich habe mir konkret soeben die 
Library für den VL53L0x von git heruntergeladen. Wenn ich jetzt das 
Python Modul nur EIN mal irgendwohin kopieren möchte und nicht immer 
wieder in das aktuelle Projekt...wohin? (oder ist es eher Praxis, die 
nötigen Module immer mit dem Zielprogramm mehrfach zu kopieren, um 
Weitergabe zu erleichtern)

Wenn ich mit
import sys
sys.path

nachschaue, sehe ich z.B /usr/lib/python3.7... wäre es ratsam die dahin 
zu kopieren? Gehen die bei einem Python-Update dann nciht flöten?


also was tue ich am sinnvollsten

1) in /usr/lib/python3.7/
2) immer alles in einen Projektordner
3) ein eigenes neues Verzeichnis 7 doch DANN weiß ich nicht wie ich den 
Suchpfad ergänzen kann.

Herzlichen Dank,

Slainte

P.S. Ich habe das hier soeben tatsächlich auf einem Raspberry 
geschrieben, wirklich faszinierend.

von Daniel B. (dbuergin)


Bewertung
1 lesenswert
nicht lesenswert
In meinen Umfeld ist es Brauch, sich für den eigenen User oder pro 
Projekt eine sogenannte virtuelle Python Umgebung einzurichten.
z.B. nach 
https://bodo-schoenfeld.de/eine-virtuelle-umgebung-fuer-python-erstellen/

Da kannst Du dann nach Herzenslust Deine Module/Libs installieren, ohne 
das systemweit installierte Python zu verändern.

Und wenn Du dich mal verfranst hast, oder etwas vermurkst hast, löscht 
Du einfach die virtuelle Umgebung und machst eine neue.

: Bearbeitet durch User
von Michael Gugelhupf (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Aktuelle Versionen von pip und setup.py kennen die Option --user. Damit 
werden die Dateien für einen Benutzer, nicht für das ganze System, 
installiert. Das merkt man daran, dass man zur Installation keine 
Root-Rechte braucht.

Der Pfad auf so installierte Module wird automatisch gesetzt. Da muss 
man nichts mehr irgendwo fummeln.

von Yalu X. (yalu) (Moderator)


Bewertung
1 lesenswert
nicht lesenswert
Oisean schrieb:
> 1) in /usr/lib/python3.7/

Besser in /usr/lib/python3.7/site-packages/

Wenn die Module nur von einem einzelnen Benutzer benötigt werden, geht
auch ~/.local/lib/python3.7/site-packages/

Da kannst du sie auch gefahrloser und ohne Root-Rechte wieder löschen.
pip install --user installiert ebenfalls dorthin.

> 2) immer alles in einen Projektordner

Das geht natürlich auch. Wenn du ein Modul in mehreren Projekten
brauchst, hast du halt mehrere Kopien davon.

> 3) ein eigenes neues Verzeichnis 7 doch DANN weiß ich nicht wie ich den
> Suchpfad ergänzen kann.

Dafür gibt es die Environment-Variable PYTHONPATH. Da schreibst du alle
gewünschten Modul-Verzeichnisse getrennt durch Doppelpunkte hinein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.