2017-05-03 6 views
0

folgende Tutorials Ich habe versucht, mein eigenes Paket ohne Erfolg zu erstellen. Der Pfad zu dem Ordner, der das Paket enthält, befindet sich in PYTHONPATH, der Paketordner hat die Datei "init .py" und seine Module.Python: "__init__" wird keine Module laden

mypath/my_packages/mymath 
---------------------/__init__.py 
---------------------/add.py 
---------------------/division.py 
---------------------/(other .py files) 

Der Pfad/zu/my_packages ist in PYTHONPATH. Ich kann es auch in "sys.path" sehen.

Ich kann "Mymath importieren", wenn __init__.py leer ist, aber keine seiner Module verwenden kann. Wenn ich versuche, Module von __init__.py zu importieren (from add import add [das Modul add.py enthält eine Funktion "add()"]), erhalte ich einen Fehler: "ImportError: Kein Modul namens 'add'".

+1

Wie über 'von .add importieren hinzufügen'? – ForceBru

+0

Gelöst! Vielen Dank! –

Antwort

2

Wenn path/to/my_packages in PYTHONPATH ist, sollten Sie Pakete wie

from mymath.add import add 

importieren oder wenn Sie in der MyMath Modul (zum Beispiel in __init__) sind, können Sie auch relativ Importe tun, wie

from .add import add 
+0

Der erste Modus funktioniert auch innerhalb des Pakets "__init__". Beide Wege in '__init__'s Körper werden 'mymath.add' dem Modul zugänglich machen, das zuerst' mymath' importiert. – jsbueno

+0

Wahre, aktualisierte Antwort. – vovaminiof