schnitzer
Posts: 7
Joined: Sun Sep 09, 2018 7:29 am

import von Modulen/Klassen

Fri Sep 21, 2018 7:10 am

Hallo Gemeinde,
wieder mal ein Anfängerproblem: Ich möchte meine selbst definierten Module alle in einem eigenen Verzeichnis im Mac zusammenfassen. Die einzelnen Module möchte ich dann von einem Python Skript aufrufen. Bisher geht das nur, wenn sich das Modul im gleichen Verzeichnis befindet wie das Skript. Wenn ich Standardmodule des Pi nutze , liegen diese ja auch in einem anderen Verzeichnis als das Skript in dem der "from ... import *" Befehl befindet. Es muss also eine Möglichkeit geben dem Raspi vorzugeben, welche Verzeichnisse er durchsuchen soll um das Modul zu finden.
Was muss ich also machen um dem Raspi zu sagen, welche Verzeichnisse er durchsuchen soll (z.B. das Verzeichnis im dem meine Module abgelegt sind).?
Beispiel: Das Modul "xxx.py" ist im Verzeichnis "/Klassen/"
Das Skript "yyy.py" ist im Verzeichnis "/Skripte/"
in dem Skript "yyy.py" ist der Befehl " from xxx import *"
Wie schaffe ich es, dass das Modul xxx im Skript yyy gefunden und geladen wird ?
Ich hoffe ich habe das verständlich erklärt. Wäre schön, wenn mir die Experten eine Antwort geben könnten.

Meine Ausstattung : Raspberry 3B+, Mac mit High Sierra, ssh installiert, VNC Viewer installiert.

smartifahrer
Posts: 637
Joined: Sat Feb 13, 2016 8:10 am

Re: import von Modulen/Klassen

Sat Sep 22, 2018 12:52 pm

Was du meinst ist der Python include path. Python hat eine Liste von Verzeichnissen in denen es nach Dateien sucht. Dieser Liste kannst du sicher zur Laufzeit ein Eintrag hinzufügen. Such mal nach "python include path"
Ohne Not solltest du daran nicht ändern.
Wenn du ein Modul in mehreren Programmen brauchst kannst du es installieren. Z.B mit pip https://python-packaging.readthedocs.io/en/latest/ oder andere.
Unter 6.1.2. https://docs.python.org/3.7/tutorial/modules.html bzw. https://docs.python.org/2.7/tutorial/modules.html findest du in der Dokumentation weitere Informationen.
Du solltes aber immer alle Programmbestandteile (Code) dort haben wo die Programme ausgeführt werden. Also Python auf dem Raspi nicht auf deinem Mac suchen lassen. Wenn du auf dem Mac entwickelst und dir das kopieren zu anstrengent ist sind andere Lösungen gefragt. Git z.B.

yfpiLiker
Posts: 32
Joined: Sat Mar 24, 2018 7:46 am

Re: import von Modulen/Klassen

Tue Oct 09, 2018 8:32 am

Genau!!

Code: Select all

import sys

path = "/verzeichniss/indem/dein/Programm/liegt/"  # auf dem pi (linux)

sys.path.append(path)

import modul
Not English. But Pythish.

Return to “Deutsch”