Python definiert Ich versuche, ein einfaches Multi-Level-Paket zu erstellen:Nameerror in Multi-Level-Paket
test_levels.py
level1/
__init__.py (empty file)
level2/
__init__.py (only contents: __all__ = ["leaf"])
leaf.py
leaf.py:
class Leaf(object):
print("read Leaf class")
pass
if __name__ == "__main__":
x = Leaf()
print("done")
test_levels.py:
from level1.level2 import *
x = Leaf()
Das Ausführen von leaf.py funktioniert direkt, aber das Ausführen von test_levels.py gibt die Ausgabe unten, , wo ich exp Keine Ausgabe:
read Leaf class
Traceback (most recent call last):
File "C:\Dev\intranet\test_levels.py", line 2, in <module>
x = Leaf()
NameError: name 'Leaf' is not defined
Kann jemand darauf hinweisen, was ich falsch mache?
seine Ich denke, 'von .leaf' wird nur Arbeit in Python 3 (oder wenn du absolute_imports von '__future__' in Python 2 importierst). –
Ja, aber ich denke thatestarter verwendet genau python3, weil er print (...) anstelle von print geschrieben hat ... – werehuman
Ich benutze 2.6, aber "from .leaf" scheint zu funktionieren. – RuiDC