Seite 1 von 1

import aus unterordner welcher mit "." startet

Verfasst: Freitag 5. Juli 2013, 14:11
von rkager
Hallo Board ich möchte alles aus einem Skript importieren welches in einem Unterordner liegt welcher mit einem Punkt beginnt.

RootFolder
->start.py
-> .FooBarFolder
--->child.py
--->__init__.py #leere init Datei

wie muss mein Statement aussehen, damit ich die ChildElemente in start.py verfügbar habe?

Danke

Re: import aus unterordner welcher mit "." startet

Verfasst: Freitag 5. Juli 2013, 15:07
von /me
rkager hat geschrieben:Hallo Board ich möchte alles aus einem Skript importieren welches in einem Unterordner liegt welcher mit einem Punkt beginnt.
Ich könnte mir so etwas vorstellen:

Code: Alles auswählen

import imp
open_file, file_name, description = imp.find_module('.FooBarFolder')
imp.load_module('foobar', open_file, file_name, description)

# alternativ müsste als Einzeiler auch Folgendes gehen
imp.load_module('foobar', *imp.find_module('.FooBarFolder'))

import foobar.child
Warum muss der Ordner denn unbedingt nicht der Python-Nomenklatur gehorchen?

Re: import aus unterordner welcher mit "." startet

Verfasst: Freitag 5. Juli 2013, 22:20
von daemonTutorials
Möglicherweise soll dieser Ordner unter Linux versteckt sein. Das macht normalerweise der "." davor.

Re: import aus unterordner welcher mit "." startet

Verfasst: Freitag 5. Juli 2013, 22:26
von BlackJack
@daemonTutorials: Das beantwortet die Frage nach dem warum aber nicht wirklich, denn warum sollte man an der Stelle einen ”versteckten” Ordner haben wollen.

Re: import aus unterordner welcher mit "." startet

Verfasst: Sonntag 7. Juli 2013, 11:38
von daemonTutorials
Stimmt. Wenn man paranoid wird, könnte man auch einfach vorkompilierte Scripts an den Endnutzer ausliefern anstatt den Ordner zu verstecken.