【问题标题】:Install OpenCV3.0 with python 3.4.3 under virtual environment (pyenv)在虚拟环境(pyenv)下用python 3.4.3安装OpenCV3.0
【发布时间】:2016-01-10 00:08:20
【问题描述】:

我正在努力尝试使用 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/ Running OpenCV from a Python virtualenv How to install ipython qtconsole with pyenv (Python version 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)

【问题讨论】:

    标签: python opencv pyenv


    【解决方案1】:

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

    【讨论】:

    • 我将 cmake 升级到 3.2.2 (askubuntu.com/questions/610291/…),但在为 opencv 3.1 运行 cmake 时,我仍然得到 Could NOT find PythonLibs: Found unsuitable version "2.7.6", but required is exact version "2.7.11"。还有其他想法吗?
    【解决方案2】:

    好的,我也解决了!

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

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

    当然,在我的anaconda环境中:

    conda install python=2.7.6

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

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

    希望对你有帮助!

    附言把如何轻松安全地升级python2.7-dev的方法放入cmets,如果你知道的话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 2018-02-20
      • 2019-05-16
      • 1970-01-01
      • 2018-04-19
      相关资源
      最近更新 更多