opencvを用いたFlaskアプリをHerokuへデプロイする方法

Flaskで作成したアプリをHerokuへデプロイするには、こちらの記事にもあるように3つのファイルが必要になります。

そのうちの1つであるrequirement.txtには、アプリで使用するPythonライブラリのバージョンを記載します。

opencvモジュールをPythonで使用するには、opencv-pythonというライブラリが必要になります。

requirement.txtにopencv-python==バージョンではうまくいきませんでしたので、その解決方法を紹介します。

因みにopencvとは、画像処理をするオープンソースライブラリであり、CやC++、Pythonなどに対応しています。

エラー

requirement.txtに以下のように記述して

opencv-python==4.7.0.72

Herokuへデプロイすると

ImportError: libGL.so.1: cannot open shared object file: No such file or directoryというエラーが出ます。

解決方法

requirement.txtに以下のように記述してください。

opencv-contrib-python-headless

これで、デプロイすると上手くいきました。