A user-defined top-level module with name 〇〇 is not supportedへの対応

環境

  • python 3.11.4 (venv)
  • Windows 11
  • VSCodeのExtension
    • Python
    • mypy-type-checker

mypy-type-checkerで出たエラーログ

note: A user-defined top-level module with name “typing_extensions” is not supported

エラーの意味

このエラーは、どうやらmypyが探索するフォルダ内にmypy自身のコードが掛かれたフォルダやmypyの拡張ライブラリが存在すると出現する.

mypyでmypy自身(or mypyの拡張ライブラリ)のソースコードの静的解析は出来ませんよ、と伝えたいのではないかと解釈している。

原因

    "python.analysis.extraPaths": [
        // ".venv\\Lib\\site-packages"
    ],

VSCodeのpython Extensionのpython.analysis.extraPathsが原因だった.

VSCodeがsite-packages内のコードを探索しに行くのか、site-packages内のフォルダもmypyにチェックされる対象になっていた模様

解決策

    "python.analysis.extraPaths": [
        // ".venv\\Lib\\site-packages"
    ],

python.analysis.extraPathsの設定を消す

自分はワークスペース内に.venvを配置したので、extraPathsを外しても探索されたので設定を消したことによる副作用はなかった。

ただ.venvをプロジェクトと異なる所に配置すると、extraPathsでライブラリのコードを参照しないとintelliSenseが使えないので困りそう。

また自分はGドライブで開発しているのだが、mypyがC:\ドライブにあるとマウントされているドライブが異なる…みたいなエラーが発生した。

そんな経緯から.venvをプロジェクトルートに配置するのが安牌なのかもしれない。

コメント

タイトルとURLをコピーしました