Pyinstallerでexe化したら「missing configuration file:」エラーが出る

Pyinstallerでexe化したら「missing configuration file:」エラーが出る

今回は、PythonでPyinstallerを使用してexeファイル化したときに起きたエラーの解決方法をご紹介します。

Pyinstallerでexeファイル化したファイルが実行できない

PythonスクリプトをWindows用のexeファイル(実行ファイル)に変換する時にPyinstallerを使用している方は多いと思います。しかし使い方は簡単でも、いざ使ってみるとエラーが多かったり意外と大変だったりします。

実際に私が使ったときに、exeファイル化はできたのですがクリックして実行するとエラーとなってしまった事例とエラー解決方法をご紹介します。

ImportError: OpenCV loader: missing configuration file: [‘config.py’]. Check OpenCV installation.

Pyinstallerを使用してexe化したファイルを実行してみると、あれ?途中で処理が終了してしまっているようなのでコンソールを確認すると「ImportError: OpenCV loader: missing configuration file: [‘config.py’]. Check OpenCV installation.」のエラーが表示されていました。

ちなみに今回は、勉強がてら試しに使っていたのでexe化する際はシンプルに「pyinstaller test.py –onefile」オプションは「–onefile」のみ付けて1ファイル化していました。

エラー分を見てみると、「OpenCV」ライブラリがインポートできませんよ(見つかりません)と言っているのがなんとなくわかります。

今回、ライブラリはpipを使用してインストールしてきていますし、コンソールから.pyファイルを叩いて実行しているときは読み込めていないという事はありません。しかしexe化する時には実際にライブラリの位置を見失ってしまっているようです。

Pythonモジュールをimportするためのパスの設定する

Pyinstallerのオプションを調べると「paths」というものがありました。pathsオプションpythonモジュールをimportするためのパスの設定をすることができるようなので、こちらで正しいパスを設定してあげれば解決します!

パスの調べ方

モジュールのある正しいパスは次のように確認することができます。

import cv2
print(cv2.__file__)
# C:\xampp\htdocs\python\test\lib\site-packages\cv2\__init__.py

OpenCVライブラリを例でいうとインポート後に「cv2.__file__」でパッケージのパスを確認することができます。

パスの設定の方法

パスさせ確認できれば、あとはpathsオプションを付けてexe化をやり直すだけです!

pyinstaller test.py --onefile --paths="C:\xampp\htdocs\python\nft_make_img\lib\site-packages\cv2"

ここで注意が必要なのが取得したパスの最後のファイル名の部分「\__init__.py」はオプションに含めないことです。
この__init__.pyは環境によっては「\cv2.so」だったり異なるので気を付けてください!

このように「 ImportError: OpenCV loader: missing configuration file: [‘config.py’]. Check OpenCV installation. 」エラーが出てしまったときは、 Pyinstallerでexe化する際pathsオプションでインポートエラーが出ているモジュールのパスを指定してあげることでエラー解消することができます!