使用 Homebrew 和 pyenv 在 Mac 上安装 OpenCV 3 for Python 3

Posted

技术标签:

【中文标题】使用 Homebrew 和 pyenv 在 Mac 上安装 OpenCV 3 for Python 3【英文标题】:Installing OpenCV 3 for Python 3 on a mac using Homebrew and pyenv 【发布时间】:2016-01-18 07:18:49 【问题描述】:

我正在运行 Mac OS X 10.11 (El Capitan)。我想:

将我的 Python 系统版本保持为默认值 同时安装 Python 3.5 安装 OpenCV 3 和 Python 绑定

我按照这个 SO 答案安装了 pyenv 和 Python 3.5:https://***.com/a/18671336/1410871

我激活了我的 Python 3 安装并安装了具有 Python 3 支持的 OpenCV 3,如下所示:

pyenv shell 3.5.0
brew install opencv3 --with-python3

但是当我启动一个 IPython shell 并导入 cv2 时,我得到一个错误:

ImportError                               Traceback (most recent call last)
<ipython-input-1-72fbbcfe2587> in <module>()
----> 1 import cv2

ImportError: No module named 'cv2'

为什么?

【问题讨论】:

【参考方案1】:

回答我自己的问题:我必须手动创建指向共享对象文件的符号链接并将其放在 pyenv Python 3 站点包目录中:

ln -s /usr/local/opt/opencv3/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so ~/.pyenv/versions/3.5.0/lib/python3.5/site-packages/cv2.so

现在import cv2 行在 Python 中可以正常工作。

【讨论】:

【参考方案2】:

opencv3 只是小桶,通过 Brew 安装时不会链接

执行以下操作:

$ brew link opencv3 --force

这是一种比手动创建符号链接更可控的方法。

然后你就可以:

$ python3
import cv2

干杯

【讨论】:

试过这个,但它对我不起作用。导入 cv2 仍然返回“ImportError: No module named 'cv2'”

以上是关于使用 Homebrew 和 pyenv 在 Mac 上安装 OpenCV 3 for Python 3的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSX python多版本管理工具:pyenv 和 virtualenv搭建

Mac OSX python多版本管理工具:pyenv 和 virtualenv搭建

Mac Python多版本共存

Mac下搭建Python3+PyCharm++PyQt5遇到的坑

python初始环境配置

mac下安装2.7和3.6版本的Python