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


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

  • 保持我的系统版本的Python作为默认值
  • 与它一起安装Python 3.5
  • 安装OpenCV 3和Python绑定

我安装了 pyenv 和Python 3.5遵循这个SO答案: https://stackoverflow.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'

为什么?


10514
2017-10-19 20:05


起源



答案:


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

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中按预期工作。


12
2017-10-19 20:07





opencv3只是keg,在通过Brew安装时不会链接

请执行下列操作:

$ brew link opencv3 --force

这是一种比手工创建符号链接更受控制的方法。

然后你就能够:

$ python3
import cv2

干杯


2
2017-08-16 11:18



试过这个,但它对我不起作用。导入cv2仍然返回“ImportError:没有名为'cv2'的模块” - Waleed Abdulla


答案:


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

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中按预期工作。


12
2017-10-19 20:07





opencv3只是keg,在通过Brew安装时不会链接

请执行下列操作:

$ brew link opencv3 --force

这是一种比手工创建符号链接更受控制的方法。

然后你就能够:

$ python3
import cv2

干杯


2
2017-08-16 11:18



试过这个,但它对我不起作用。导入cv2仍然返回“ImportError:没有名为'cv2'的模块” - Waleed Abdulla