【mypy】Cannot find implementation or library stub for module named 'foo.bar'

  • Python 3.8.3
  • Poerty 1.1.4
  • mypy 0.790
$ poetry run mypy ./src
src/foo/__init__.py:1: error: Cannot find implementation or library stub for module named 'src/foo/bar'
src/foo/__init__.py:1: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports

こんなエラーが出ました。
この時のディレクトリ構成は下記。

project_dir
└ src
   └ foo
       ├ __init__.py # ここでエラー
       └ bar.py

この __init__.py の内容はこんな感じ。

# project_dir/src/foo/__init__.py

from src.foo.bar import Bar

ちゃんとsrc直下にも __init__.py を置いてあげないとmypyが辿れないようです。

project_dir
└ src
   ├ __init__.py # 追加
   └ foo
       ├ __init__.py
       └ bar.py

新しく作成した __init__.py の内容は空で良いです。

$ poetry run mypy ./src
Success: no issues found in xx source files

解決しました。