我正在努力尝试使用 Python3.4.3 安装 OpenCV 3.0.0,并使用 pyenv 在虚拟环境上安装。我在 Ubuntu 14.04 上。
我使用各种信息源尝试了很多事情: http: //www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/ http:// www.pyimagesearch.com/2015/06/29/install-opencv-3-0-and-python-3-4-on-osx/ 从 Python virtualenv 运行 OpenCV 如何使用 pyenv 安装 ipython qtconsole(Python 3.4 版。 2)
对我来说,困难的部分是从 pyenv 链接到正确的 python。我在 pyenv 中安装了 3.4.3 和共享库(env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.4.3)和一个名为“dev”的虚拟环境,安装了 numpy 并正常工作。
我的 cmake 命令如下:
PREFIX_MAIN=`pyenv virtualenv-prefix`
PREFIX=`pyenv prefix`
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX="$PREFIX" \
-D PYTHON3_LIBRARY="$PREFIX_MAIN"/lib/libpython3.4m.so \
-D PYTHON3_INCLUDE_DIRS="$PREFIX_MAIN"/include/python3.4m \
-D PYTHON3_EXECUTABLE="$PREFIX"/bin/python3.4 \
-D PYTHON3_PACKAGES_PATH="$PREFIX"/lib/python3.4/site-packages/ \
-D PYTHON3_NUMPY_INCLUDE_DIRS="$PREFIX"/lib/python3.4/site-packages/numpy/core/include \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
但是 cmake 仍然不想找到 Python 3 Libraires(参见下面的 cmake 输出):
-- Python 2:
-- Interpreter: /home/group/.pyenv/shims/python2.7 (ver 2.7.6)
--
-- Python 3:
-- Interpreter: /home/group/.pyenv/versions/dev/bin/python3.4 (ver 3.4.3)
-- Libraries: NO
-- numpy: /home/group/.pyenv/versions/dev/lib/python3.4/site-packages/numpy/core/include (ver 1.10.0.post2)
-- packages path: /home/group/.pyenv/versions/dev/lib/python3.4/site-packages
--
-- Python (for build): /home/group/.pyenv/shims/python2.7
此外,它似乎想使用“/home/group/.pyenv/shims/python2.7”进行构建。我不认为这是问题所在。
调查 cmake 输出我发现以下内容:
-- Found PythonInterp: /home/group/.pyenv/versions/dev/bin/python3.4 (found suitable version "3.4.3", minimum required is "3.4")
-- Could NOT find PythonLibs: Found unsuitable version "3.4.0", but required is exact version "3.4.3" (found /home/group/.pyenv/versions/3.4.3/lib/libpython3.4m.so)
似乎 libpython3.4m.so 是 3.4.0 版本 .. 虽然我明确安装了 3.4.3 ......这可能是问题吗?如何获得正确的 PythonLibs?
我对这些事情的经验很少,坦率地说,我在这里迷失了……
编辑:我尝试在我的 pyenv(env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.4.0)上使用 python 版本 3.4.0 进行编译,它使用上面的 cmake 命令工作。要么opencv明确想要3.4.0要么我不明白为3.4.3安装的共享库实际上是如何被视为3.4.0的......
编辑:pyenv下的python 2.7.10同样的问题,你应该使用2.7.6 ...
-- Found PythonInterp: /home/group/.pyenv/versions/cv2/bin/python2.7 (found suitable version "2.7.10", minimum required is "2.7")
-- Could NOT find PythonLibs: Found unsuitable version "2.7.6", but required is exact version "2.7.10" (found /home/group/.pyenv/versions/2.7.10/lib/libpython2.7.so)