在虚拟环境下使用python 3.4.3安装OpenCV3.0(pyenv)

时间:2015-10-12 13:26:20

标签: python opencv pyenv

我正在努力尝试使用Python3.4.3安装OpenCV 3.0.0并使用pyenv安装虚拟环境。我在Ubuntu 14.04上。

我使用各种信息来源尝试了很多东西: http://www.pyimagesearch.com/2015/06/29/install-opencv-3-0-and-python-3-4-on-osx/ Running OpenCV from a Python virtualenv How to install ipython qtconsole with pyenv (Python version 3.4.2) how to make obb file

对我来说,困难的部分是从pyenv链接到正确的python。我在pyenv中安装了3.4.3共享库(env PYTHON_CONFIGURE_OPTS =“ - enable-shared”pyenv install 3.4.3)和一个名为“dev”的virtualenv,安装了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 ......这可能是问题吗?我怎样才能获得正确的PythonLib?

我对这些事情的经验很少,我坦率地失去了......

编辑:我试图在我的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)

2 个答案:

答案 0 :(得分:0)

我通过安装较新版本的cmake解决了这个问题。我使用的是Ubuntu 14.04,看来这个Ubuntu附带的cmake版本并不能理解python的新版本。

答案 1 :(得分:0)

好的,也为我解决了!

我有ubuntu 14.04 LTS,anaconda2,我跟着:http://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu(没有contrib文件夹)

我经常点击'#34;不合适的版本"问题。为我解决的问题是将python降级为我的python2.7-dev的精确版本,即2.7.6。

当然,在我的anaconda环境中:

conda install python=2.7.6

目前,我还不知道如何将python2.7-dev库升级到2.7.11(此时此刻我不敢问;)

将cmake升级到3.2.2也可能有所帮助,但它本身并没有解决问题。

希望它有所帮助!

P.S。如果你知道怎么做的话,请注释如何轻松安全地升级python2.7-dev。