macos - CMAKE for opencv 3.0 安装找不到 python3

标签 macos python-3.x opencv

我尝试在 MacOS 10.13 上安装 opencv 3.0,当我使用该说明时:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D PYTHON3_LIBRARY=YYY \
    -D PYTHON3_INCLUDE_DIR=ZZZ \
    -D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python \
    -D BUILD_opencv_python2=OFF \
    -D BUILD_opencv_python3=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=ON ..

安装程序找不到我的 python 3 编译器并向我显示:

Python 3:
--     Interpreter:                 NO
--     Libraries:                   NO
--     numpy:                       NO (Python3 wrappers can not be generated)
--     packages path:    

如何修复它以找到 python 3 编译器? 我已经使用“brew install python3”安装了 python3

最佳答案

您可能需要提供完整路径。也许 $VIRTUAL_ENV 部分是您的问题?不过,使用 virtualenv python3(例如使用 numpy)安装它可能是一个完全不同的问题。

-DBUILD_opencv_python3=ON
-DPYTHON3_EXECUTABLE=/full/path/to/bin/python3
-DPYTHON3_LIBRARY=/full/path/to/lib
-DPYTHON3_INCLUDE_DIR=/full/path/to/include
-DBUILD_opencv_python2=OFF

您提到了 OSX 和 brew,因此您可能还忽略了一个有点神秘的路径问题。在我的系统上,我安装了 python3 和 brew,我安装的版本是 3.6.2。所以这些路径实际上需要是

/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/bin/python3
/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib
/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/include/

框架的东西是 OSX 特定的东西,但是 bin/ 文件夹被符号链接(symbolic link)到 /usr/local/Cellar/python3/3.6.2 而其他的(libinclude)不

但是

为什么不直接使用 brew 来安装它? brew info opencv 显示 opencv.rb使用python3。这可能是阻力最小的路径;)

请注意,OpenCV “装瓶”的,这意味着默认情况下 brew 将首先尝试安装瓶子。通常最好从源代码安装 OpenCV(它会编译到您的特定机器),因此您需要

brew install --build-from-source opencv

当然,这将需要更长的时间来安装!

更新:您可能还没有直接在brew中使用opencv,要获取它,您需要

brew tap homebrew/science
brew install --build-from-source opencv

有关此内容以及 homebrew/science 附带内容的更多信息 here .

关于macos - CMAKE for opencv 3.0 安装找不到 python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46626130/

相关文章:

objective-c - Objective-C 中的只读分层模型

python - 在 Python@3.10 上安装 cytoolz 时出现问题

python - Numpy Broadcast_to((50000,), (50000,32,32,3)) 失败。为什么?

opencv - 段错误错误..使用opencv_createsamples

macos - 如何在word文档中设置页边距和模板?

macos - OSX Play Framework 自动重新加载

objective-c - 在我的可编写脚本的应用程序中为 "make new"提供我自己的对象

Python-递归转换为字典列表中的字符串

c++ - OpenCV 用 Mat 替换 IplImage

python - OpenCV:HoughCircles 返回无效的圆参数