#はじめに
pytoshop を利用した実行ファイルを生成する際の環境設定に関する記事が少なかったので,まとめておこうと思います.
#やりたいこと
pytoshop と OpenCV を利用したコードについて,Pyinstaller を用いて実行ファイルを生成します.
このとき,どうやら OpenCV と Pyinstaller には互換性の問題(?)があるようで,ファイル生成を実行できた環境をまとめておきます.
pytoshop は anaconda で提供されていないので pip install を利用する必要があります.
そこで全て pipインストールを行ったのですが,自ら入れたパッケージとそれらに紐づいて自動で入ったパッケージなどが様々あるので,まとめておきます.
#環境
#利用したPython
Python = 3.7.10
#パッケージの管理
pip install Pyinstaller==3.4 (記事作成時の最新版は 4.3)
pip install pytoshop (記事作成時の最新版は 1.2.1)
pip install opencv-python==4.0.1.24 (記事作成時の最新版は 4.5.2.54)
pip install mkl==2018.0.0 (記事作成時の最新版は 2021.3.0)
pip install six (記事作成時の最新版は 1.16.0)
私が環境構築について各パッケージのバージョンをpytoshop については過去バージョンを利用すると初期化がおかしくなるなど微妙な不具合があった気がします.
#環境内のパッケージ(括弧をつけていないものは全て記事作成時の最新版)
altgraph 0.17
certifi 2021.5.30
Cython 0.29.23
future 0.18.2
intel-openmp 2018.0.0 (2021.3.0)
macholib 1.14
mkl 2018.0.0 (2021.3.0)
numpy 1.17.4 (1.21.0)
opencv-python 4.0.1.24 (4.5.2.54)
pefile 2021.5.24
pip 21.1.2 (21.1.3)
PyInstaller 3.4 (4.3)
pytoshop 1.2.1
pywin32-ctypes 0.2.0
setuptools 52.0.0.post20210125 (57.0.0)
six 1.16.0
wheel 0.36.2
wincertstore 0.2
numpy や intel-openmp 辺りは恐らく OpenCV に紐づいてダウンロード・インストールされるので,過去バージョンになっているようです.
pip や setuptools に関しては恐らく私の更新忘れです.
また,Pyinstaller で実行ファイルを作成する際には特定のモジュールのみを import するような記法(from sklearn import tree のようなもの)を使うと module not found error が出るため,最初に import sklearn を行い,tree を利用する際は常に sklearn.tree のように書くと問題なく利用できると思います.
#参考
pytoshop を利用する上で参考にしたサイトもまとめておきます.
https://pytoshop.readthedocs.io/en/latest/api.html