「AttributeError: partially initialized module ‘cv2’ has no attribute ‘gapi_wip_gst_GStreamerPipeline’ (most likely due to a circular import)」と表示される

racecar sim <ファイル名>を実行した際に、「AttributeError: partially initialized module ‘cv2’ has no attribute ‘gapi_wip_gst_GStreamerPipeline’ (most likely due to a circular import)」と表示されます。どうしたらよいですか?に対する、FAQです。

原因

ダウンロードしたcv2のモジュールが、当プログラムで利用しているシミュレーションと相性が悪いことを示しています。

解決方法

大きく3ステップで解決します。

①モジュールの確認

まず、ダウンロードしたcv2のモジュールを確かめてください。

実行してほしいコマンド表示されたら問題ない文章
pip show opencv-pythonWARNING: Package(s) not found: opencv-python
pip show opencv-python-headlessWARNING: Package(s) not found: opencv-python-headless
pip show opencv-contrib-pythonWARNING: Package(s) not found: opencv-contrib-python
pip show opencv-python opencv-contrib-python-headlessWARNING: Package(s) not found: opencv-contrib-python-headless, opencv-python

上記コマンドのいずれかで、「表の右側にしめした文章」ではない文章が出るはずです。「表の右側にしめした文章」ではない文章が出たコマンドが分かったら、次の章に進んでください。

※ここでは「pip show opencv-python-headless」で表の右側に示した文章とは異なる文章が表示されたとします。

②アンインストール(削除)する

「表の右側にしめした文章」ではない文章が出たコマンドのpip showに続く後の文字列に注目します。ここでは、「opencv-python-headless」です。ターミナルに以下の文字を入力し、実行してください。

pip uninstall opencv-python-headless

※pip showに続いて記載した文字列を「pip uninstall」の後に入力

これを実行し終えたら次に進んでください。

③インストールする

アンインストールが終わったら、以下のコマンドをターミナルに入力し、実行してください。

pipenv install opencv-contrib-python==4.5.4.58

あるいは

pip install opencv-contrib-python==4.5.4.58

これを実行したら、PCをシャットダウン・起動し、再度プログラムを実行してください。