自作したpythonのパッケージのスクリプトをターミナルから実行しようとしたらimportでコケていた。
パッケージ内容
└── my_package ├── __init__.py ├── main.py └── people.py
main.py
from .people import People man = People() man.say_hello()
people.py
class People(): def say_hello(self): print("hello")
ターミナルから実行すると「モジュールが見つからない」とエラー
$ python my_package/main.py Traceback (most recent call last): File "my_package/main.py", line 1, in <module> from .people import People ModuleNotFoundError: No module named '__main__.people'; '__main__' is not a package
[-m]オプションをつけて実行したら実行できた。この時指定するのはファイル名でなくてパッケージ名であることに注意する
$ python -m my_package.main hello
今回自分は詳しいところまでは追っていないけど、ここが書いてくれている感じ。 https://qiita.com/ysk24ok/items/2711295d83218c699276