2

我正在努力尝试使用 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)
4

2 回答 2

0

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

于 2016-01-28T12:29:20.373 回答
0

好的,也为我解决了!

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

我经常遇到“不合适的版本”问题。为我解决的是将python降级为我的python2.7-dev的确切版本,即2.7.6。

当然,在我的anaconda环境中:

conda install python=2.7.6

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

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

希望能帮助到你!

ps 如果您知道如何轻松安全地升级 python2.7-dev,请发表评论。

于 2016-02-16T14:26:59.600 回答