自作のパッケージを認識してくれない
こういう構造のディレクトリでの話
work_dir
├── pyproject.toml
├── src
│ └── my_package
│ ├── __init__.py
│ └── my_module.py
└── work.py
work_dir
内のwork.py
でsrc/my_package
以下にある自作パッケージを以下のように利用しようとしたら怒られた
python work.py
import sys
sys.path.append("path/to/src")
from my_package import my_module
解決策
pyproject.toml
に以下の内容を書き込んであげる
[tool.poetry]
packages = [
{ include = "my_module", from = "src" },
]
poetry install
を忘れずに
$ poetry install
これでPoetry環境で自作のパッケージを利用できた。
O'reillyの著書に付随したGithubのコードを流用した時にこれが起きた。sys.path.append
でライブラリを認識させる方法はそもそも修正コストがめちゃ大きいのであまり良くないらしい。