Seite 1 von 1

Eigene Module importieren

Verfasst: Samstag 16. April 2016, 09:30
von gerald123
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!

Re: Eigene Module importieren

Verfasst: Samstag 16. April 2016, 12:00
von DasIch
Das wird im Tutorial erklärt.

Re: Eigene Module importieren

Verfasst: Donnerstag 21. April 2016, 06:50
von Drezael
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.

Re: Eigene Module importieren

Verfasst: Donnerstag 21. April 2016, 08:05
von /me
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.

Re: Eigene Module importieren

Verfasst: Donnerstag 21. April 2016, 08:22
von snafu
@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``).