2017-07-11 4 views
1

Ich habe 4 Dateien in meinem Projekt:Wie importiere ich ein Modul ohne Klasse in Python?

project/__init__.py 
project/app.py 
project/mod_x.py 
project/mod_y.py 

In mod_x.py habe ich eine Klasse (z ModX) In mod_y.py Ich habe nur eine Funktion.

I Module aus app.py importieren wie folgt:

from .mod_x import ModX 
import .mod_y 

Ich erhalte eine Fehlermeldung:

ImportError: No module named 'mod_y'

Bevor ich erstellt init Py ich nicht diese Art von Problemen haben (Natürlich gebe ich nicht "." vor dem Modulnamen).

Wie zu importieren Modul, das nicht die Klasse enthält in Python3 mit init .py-Datei im aktuellen Verzeichnis?

+0

die Lage, gibt es keinen Unterschied zwischen 'mod_x' und' mod_y' (die Inhalte jedes Moduls sind irrelevant). Warum würden Sie sie nicht beide auf die gleiche Weise importieren (sowohl mit als auch ohne das '.', das einen relativen Import bedeutet)? – chepner

+0

@chepner Ich habe einen Fehler gemacht, ich importiere beide mit '.' Ich habe gerade die Frage bearbeitet. – trojek

Antwort

3

Relative Importe sind nur für die Syntax from...import verfügbar.

Sie, dass Funktion auf diese Weise importieren könnte:

from .mod_y import FUNCTION_NAME 

Module auf diese Weise könnte importiert:

from . import mod_y 
+0

Ist es root oder 'Projekt' in PYTHONPATH? – bakatrouble

Verwandte Themen