[python + github workflow] ModuleNotFoundError: No module named エラー

github Actions で、自動試験を workflow で記載してる時にModuleNotFoundError: No module named でなかなか前に進めなかった時の備忘録。

ちょっとディレクリ構成が複雑で

project がソースディレクトリで、others には自動試験には不要な試験が。
また、testsの中では、tests内部で参照される unit_utils.pyがあって。
あと、ソース内では、設定ファイルが本番と試験で参照箇所が違っていて、ソース内部からは相対パスで見てます。

なので、target ディレクトリ

とすると、ModuleNotFoundError が出る。さらに、unit_utils.py もうまく参照できない。

とありあえず正解は、

Set env で、 PYTHONPATH に srcディレクトリを追加。(cd で後で移動するので一つ上の階層)
試験実行時には、tests ディレクトリに移動。これにより、othersにある試験を無視。
poetry run python -m pytest で実行する。







コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください