Si j'exécute main.py
ça marche bien, le problème est quand j'exécute demo2.py
|myPackage
|subPackage
demo.py
demo2.py
main.py
main.py
from ludikDriver.demo2 import demo2_print
demo2_print()
demo2.py
from .demo import demoprint
def demo2_print():
print("demo2")
demoprint()
demo2_print()
demo.py
def demoprint():
print("demo")
Erreur: from .demo import demoprint
ModuleNotFoundError: No module named '__main__.demo'; '__main__' is not a package
Dois-je avoir __init__.py
?
Si vous supprimez le .
, ça devrait marcher. demo2.py
devient:
from demo import demoprint # instead of `from .demo import demoprint`
def demo2_print():
print("demo2")
demoprint()
demo2_print()
Vous pouvez maintenant exécuter %run ludikDriver/demo2.py
en ipython par exemple et vous obtenez:
demo2
demo
Pour plus de détails, la section "Importations" de cet article pourrait vous aider.