最近需要使用 python 调用 openCv 来玩一些东西,结果安装 openCv 的过程充满血泪
环境和安装过程
- mac 环境,自带 python 2.7
- 首先安装了 homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 安装 openCv
brew install homebrew/science/opencv
brew install homebrew/science/opencv3
不走运,报错了,因为 openCv homebrew 上的地址已经迁移,于是:
brew install homebrew/core/opencv
brew install homebrew/core/opencv3
- 配置环境变量
cd /Library/Python/2.7/site-packages/
ln -s /usr/local/Cellar/opencv/2.4.13.2/lib/python2.7/site-packages/cv.py cv.py
ln -s /usr/local/Cellar/opencv/2.4.13.2/lib/python2.7/site-packages/cv2.so cv2.so
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
- 测试
python
import cv2
踩坑
上面第五步测试,幸运的是,报的不是
ImportError: No module named cv2
, 证明环境变量配置成功,模块找到了
但是不幸的是,报了一个:
ImportError: numpy.core.multiarray failed to import
谷歌了一下,网上一堆解决办法,而且解决办法很集中,就是版本过低了,升级版本,删除重装,等等一系列的办法,好像也不是啥大事
But,这一试就是一个下午啊,就是不行,绝望
灵光一闪
看了很多 issue,突然发现,安装 openCv 的时候,有自动安装 numpy,而我使用的 homebrew 安装,进入到 homebrew 安装目录,
cd /usr/local/Cellar
ls
果然有一个 numpy 目录
而 pip 的安装目录
/usr/local/lib/python2.7/site-packages
ls
也有这个 numpy
解决办法
- 删除 cellar 上的 numpy
rm -rf /usr/local/Cellar/numpy
- 删除 pip 上的 numpy
rm -rf /usr/local/lib/python2.7/site-packages/numpy
rm -rf /usr/local/lib/python2.7/site-packages/numpy-1.14.3.dist-info
- 重装
pip install numpy