Pipenvで再現環境を構築したかった(+α)
前々回の記事で,RICOH Theta Sを使ってスティッチング処理を行いました.
その動作環境を改善しようとして少し手間取ってしまったので,
備忘録も兼ねて,構築環境のPipfileと手間取りポイントをメモしておきます.
早速Pipenvファイルから晒していきましょう.
[[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] opencv-contrib-python = "==3.4.4.19" opencv-python = "==3.4.4.19" intel-numpy = "*" numpy = "==1.15.1" [requires] python_version = "3.6"
はい,気になる点が3点ありますね.
- Opencv-pythonのバージョン古くない?
- なんでintel-numpyを入れるの?Anacondaにすれば?
- なんでintel-numpyが入ってるのになんでバージョン指定でnumpyを入れるの?
実はそれぞれに手間取りポイントがありました.
Q1: Opencv-pythonのバージョン古くない?
A: 最新版だとpipenv install opencv-python
が出来なかったから.
”Opencv python”で検索すると,色々と記事が出てくると思います.
ですが,そのとおり実行すると色んな所からエラーが発生します.
(代表的エラーは下記のリンクをご参照ください..)
解決方法が説明されてはいるのですが,なぜか私の環境では解決出来なかったので,
Raspiで上手くできた例を参考にして,
pipenv install opencv-contrib-python==3.4.4.19 pipenv install opencv-python==3.4.4.19
として,古いバージョンを導入することで,動作させることができました.
Q2: なんでintel-numpyを入れるの?Anacondaにすれば?
A: 高速に処理してほしいものの,Anacondaが好きになれないから.
ちなみに,Python3.6にしたのはintel-numpyを導入するためでした.
Python3.7だとインストールに失敗します.
Q3: intel-numpyが入ってるのになんでバージョン指定でnumpyを入れるの?
A: 指定しておかないと,後でnumpyインストール時に上書きされるから..
参考:https://github.com/pypa/pipenv/issues/3471
以上の詰まりポイントの結果,冒頭のPipfileになりました.
ソースコードも整理して,どこかでGithubにUpします.