Je suis en train de créer un simple paquet multi-niveaux:NameError dans la définition de python package multi-niveaux
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()
L'exécution de leaf.py fonctionne correctement, mais l'exécution de test_levels.py renvoie la sortie ci-dessous, où j'étais exp ect aucune sortie:
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
Est-ce que quelqu'un peut signaler ce que je fais mal?
Je pense que 'de .leaf' ne fonctionnera que dans Python 3 (ou si vous importez des importations absolues de '__future__' dans Python 2). –
Oui, mais je pense que topicstarter utilise exactement python3, parce qu'il a écrit print (...) au lieu d'imprimer ... – werehuman
J'utilise 2.6, mais "from .leaf" semble fonctionner. – RuiDC