[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 で実行する。




[python] pip で、proxy経由でイントール失敗 [Errno 104]

proxy 経由のネットワーク環境で、あるpython モジュールをインストールしたら以下のエラー

setup.py の setup_requires pytest-runner が入っているんだけど、それが取ってこれないみたい。

setup_requires を処理するときは、pip で指定した –proxy の指定引き継がれてないのか。

install_requires を処理すときは、–proxy の宛先を引き継いでるっぽい。

とりあえず、別途 pytest-runner を pip でインストールして解決した。