ModuleNotFoundError: No module named 'mmcv._ext'が出てしまって困った解決策

こんばんは、クロガネです。
タイトル通りMMCVモジュールを使用していると以下のエラーが出ることがあります。

ModuleNotFoundError: No module named 'mmcv._ext'

GitHubのissueではどのバージョンを入れたらどうのこうの、という話しか見つからなかったので、自環境では解決した方法を共有しておきます。


解決策

解決策はシンプルでした。
公式ドキュメントからどのバージョに合わせるべきかを選ぶことができます。PyTorchのバージョンに合わせて導入するとエラーが消えました。
Installation — mmcv 2.2.0 documentation

実際のところ、公式ドキュメントを最初に読むべきでしたね。GitHubのページにもPyTorchに言及はしてあるので、最初に疑うべきでしたね。

PyTorchのバージョンを確認

自分の場合は
・Windows
・PyTorchが「2.2.2+cu118」
です。

上記サイトでそれぞれプルダウンから選択すると、以下のコマンドでインストールしてください。と言われます。

MMCVの入れ直し

すでにmmcvを導入済みだと思うのでuninstallします。

pip uninstall mmcv

また、mmcv-fullも導入していたらこちらもuninstallします。

pip uninstall mmcv-full

最後に公式ドキュメントで選択したコマンドで導入します。念のため、pipの--no-cache-dirオプションを指定しておきましょう。
自分の環境では最終的に以下のコマンドで解決しました。

pip install mmcv==2.2.0 --no-cache-dir -f https://download.openmmlab.com/mmcv/dist/cu118/torch2.2/index.html


注) mmcv2.xではmmcv-fullではなくmmcvのみの導入で問題ありません

注意点として、古いドキュメントだとmmcv-fullを導入してください、と書いてあることがありますが、mmcv2.x以降はmmcvのみで問題ありません。

下記の通り、
1.xのmmcv → 2.xのmmcv-lite 
1.xのmmcv-full → 2.xのmmcv
です。

2.x, it renamed the package names mmcv to mmcv-lite and mmcv-full to mmcv.

open-mmlab/mmcv: OpenMMLab Computer Vision Foundation (github.com)


お疲れ様です。
以上で自環境では解決しました。
プログラミングnoobなので半日かかってしまったので共有しておきます。
これで解決すれば幸いです。

クロガネでした!


この記事が気に入ったらサポートをしてみませんか?