Нет модуля с именем '__main __. Demo'; '__main__' не является пакетом python3 - PullRequest
0 голосов
/ 03 июля 2018

Если я выполняю main.py, он работает нормально, проблема в том, что я выполняю 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")

Ошибка: from .demo import demoprint

ModuleNotFoundError: No module named '__main__.demo'; '__main__' is not a package

Должен ли я иметь __init__.py?

1 Ответ

0 голосов
/ 17 августа 2018

Если вы уроните ., оно должно работать. demo2.py становится:

from demo import demoprint # instead of `from .demo import demoprint`

def demo2_print():
    print("demo2")
    demoprint()

demo2_print()

Теперь вы можете запустить %run ludikDriver/demo2.py в ipython, например, и вы получите:

demo2
demo

Для получения более подробной информации, раздел "Импорт" , эта статья может помочь.

...