Ich habe eine Python-Bibliothek, die wie folgt aussieht (enthält Pakete):Vieldeutigkeit der Importmodule in Python
|-- python_lib/
|-- plotting.py
|-- verification.py
|-- io.py
|
|-- ensemble/
| -- plotting.py
| -- verification.py
Aber ich habe Probleme mit mehrdeutigen Modul importiert. In ensemble.plotting.py
mag ich das verification.py
Modul von der obersten Ebene importieren (python_lib
):
# ensemble/plotting.py
import verification.obs as verobs
Allerdings bekomme ich einen Importfehler, da dies das verification.py
Modul aus dem Ensemble Verzeichnis zu importieren versucht, statt der oberste Ebene die Bibliothek.
Ich dachte, dass die „abslute Importe“ -Funktion dieses Problem lösen würde:
from ..verification import obs
aber ich bekomme diese Fehlermeldung:
ValueError: Attempted relative import beyond toplevel package
Wie richte ich python_lib/verification.py
als Import von python_lib/ensemble/*.py
ohne zu versuchen, die lokale Paketversion importieren?
Ich benutze Python Version 2.7.
'von python_lib.verification importieren obs'? – leovp
@leovp python_lib ist kein Paket, es passiert einfach mit dem Basisverzeichnis, in dem sich die Quelle befindet. – ccbunney
Versuchen Sie, jede leere Unterdatei namens __init__.py hinzuzufügen. betrachten Sie diese https://stackoverflow.com/questions/11536764/how-to-fix-attempted-relative-import-in-non-package-even-with-init-py?rq=1 auch – nivhanin