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
が必要ですか?
.
をドロップすると、動作するはずです。 demo2.py
は次のようになります。
from demo import demoprint # instead of `from .demo import demoprint`
def demo2_print():
print("demo2")
demoprint()
demo2_print()
これで、たとえばipythonで%run ludikDriver/demo2.py
を実行でき、次のようになります:
demo2
demo
詳細については、 この記事 の「インポート」セクションが役立つ場合があります。