私の最大の目的は、私が望むことを達成するためのステップバイステップチュートリアルを見つけられませんでした。virtualenvのOpenCVの2つのバージョン、python
私のプロジェクトには、opencv2.4のpython2とopencv3.1のpython3という2つの設定があります。そのために私はopencvをクローンし、hereからのチュートリアルの後にvirtualenvを作成します(ラズベリーPIとCUDAではなく、設定中にもう一つのフラグがあります)。
Q1:別のvirtualenvをpython3用に作成すると、opencvのインストールを効率的に管理するにはどうすればよいですか?私は何とか様々なビルドフォルダにリンクできますか?
同じビルドフォルダを削除して、opencvブランチをそれぞれのバージョンでチェックアウトし、virtualenvを切り替えるときにゼロから毎回ビルドすることは、最適ではない解決策です。
(仮定、OpenCVのを/home/libraries/opencv/
にクローニングされる)
Q2:チュートリアルは、OpenCVのとPythonのための様々な依存関係のセクション1のインストールに記載されています。それはvirtualenvを作成する前です。 python-devとpython-dev3を同時にインストールすることはできますか?それともvirtualenv内のものを上書きする必要がありますか?
Q3: 私は適切にvirtualenvのそれぞれの内のそれぞれのpythonのバージョンとの両方のOpenCVのバージョンをインストールして、シンボリックリンクすることができました。しかし、私は完全にcmakeの出力を理解していない:
cmake
を実行すると(デフォルトではpython2.7を使用していますvirtualenvの中で、OpenCVのマスターでgit checkout 2.4.13
とopencv_contrib opencv2.4のため何も存在しないため)、それはようpython2.7を取ります通訳。しかし、virtualenvを使用しないように思われるパスをパッケージ化、なぜその、なぜpython3.4(git checkout 3.1.0
)とvirtualenvを使用しようとしますが、それはまだ?:
-- Python:
-- Interpreter: /home/josh/.virtualenvs/tfpy2/bin/python2 (ver 2.7.6)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
-- numpy: /home/josh/.virtualenvs/tfpy2/local/lib/python2.7/site-packages/numpy/core/include (ver 1.12.0)
-- packages path: lib/python2.7/site-packages
の作品があり、cmakeのは今2つのPythonのバージョンを認識しているようだ、しかし、そうです間違った2.7を選択する(しかし、私はどうにかして目的の3.4でうまく構築された)。なぜそれがvirtualenvのとpython2.7内python3.4をしません見つけ、プラスなぜビルドの間違ったのpythonを選ぶ?:
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.6)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
-- numpy: /usr/local/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.3)
-- packages path: lib/python2.7/dist-packages
--
-- Python 3:
-- Interpreter: /home/josh/.virtualenvs/tfpy3/bin/python3.4 (ver 3.4.3)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
-- numpy: /home/josh/.virtualenvs/tfpy3/lib/python3.4/site-packages/numpy/core/include (ver 1.12.0)
-- packages path: lib/python3.4/site-packages
--
-- Python (for build): /usr/bin/python2.7
(私はhereは、いくつかの解決策であることを承知していますが、メインの考えではありませんそのような問題を自動的に回避するにはvirtualenv?hereと同様の問題だと思われますが、間違ったバージョンのPythonがコンパイルで認識された/使用されていれば、単純にビルドされたライブラリをシンボリックリンクすることはできません)
ありがとうございます!私はあなたの解決策を読むことができて嬉しいです!一方、私はポストを清潔に保つために主な質問を更新した問題に遭遇しました。あなたは一見をして答えを更新していただけますか? – beginh
また、私はボンネットの下で何が実行されていることを知っていることを安心させてください。 OpenCVでは、基本的にすべての依存関係がcv2.soライブラリを構築するために必要です。それぞれのvirtualenvに応じてpython2.7とpython3.4のサイトパッケージに.soファイルをコピーしてインストールします。だから私は自由にリポジトリを削除することができます、はい? numpyがvirtualenvにインストールされたのはなぜですか?もしnumpyやOpenCVがvirtualenvからインストールされていたら、それは上書きされますか? – beginh