Eigene Module importieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gerald123
User
Beiträge: 36
Registriert: Donnerstag 10. September 2015, 12:10

Hey!
Ich versuche gerade mein Python Projekt zu strukturieren (arbeite noch nicht allzu lange mit Python).
Beispielhaft möchte ich folgender Ordnerstruktur annehmen:

OrdnerA
file1.py
file2.py

OrdnerB
file3.py
file4.py

Bis jetzt habe ich beim Importieren von Funktionen aus anderen files nie Probleme gehabt, da immer alle Files im gleichen Ordner waren.

Wär super, wenn mir jemand erklären könnte (oder Link zu einer simplen Erklärung), wie die Module (und vor allem wenn diese in unterschiedlichen Ordnern liegen) in Python aufgebaut sind + was hat es mit __init__.py files auf sich.

Vielen Dank und liebe Grüße!
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Das wird im Tutorial erklärt.
Drezael
User
Beiträge: 11
Registriert: Dienstag 4. März 2014, 06:35

Hallo,

wenn du deine Datein öfters und auch für andere Projekte benötigst könntest du diese in den Python Ordner kopieren. somit kannst du diese dann ganz einfach mit "import xy" importieren.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Drezael hat geschrieben:wenn du deine Datein öfters und auch für andere Projekte benötigst könntest du diese in den Python Ordner kopieren.
Man kopiert nicht einfach irgendwelche Dateien in den Ordner der Python-Installation.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@Drezael:
Dein Vorgehen mag funktionieren, ist aber eher unschön. Die saubere Lösung wäre das Erstellen einer setup.py für dein Projekt und die anschließende Installation via ``python setup.py install`` als Befehl von der Kommandozeile.

Oder noch bequemer: ``pip install -e .`` aus dem Projektordner. Damit werden Änderungen am eigenen Projekt sofort für die lokale Installation übernommen, ohne dass jedes Mal erneut installiert werden muss. Genau genommen handelt es sich dabei um eine "virtuelle" Installation (siehe Doku für ``pip install -e`` bzw Doku für ``setup.py develop``).
Antworten