首先,完全不知道怎么搞,查资料。网上一堆资料,说用homebrew装。ok,既然那么多人这么说,那应该没错了。于是装了homebrew,然后再用homebrew来装OpenCV。装完之后测试,"import cv2",报错。这时看网上有人写出错是numpy的原因,于是就跟着用pip3装了numpy。测试,尼玛,依然报错。接着就陷入了两天的找坑时间。
StackOverflow,GitHub,csdn各种资料,有说是numpy版本过低的,于是升级numpy版本再测试,依然不行;有说是电脑里有多个numpy版本导致导入时冲突的,于是进入到Mac的recovery模式获得权限,再将python2.3,python2.5,python2.6,python2.7里的numpy文件夹剪切到别的目录并重命名,再测试,依然不行(这中间还要看怎么进recovery模式,而且还是Mac Mini,键盘按键都不一样)。后面想了下,既然import numpy都出错,那是不是因为pip3的默认安装路径被改了。于是用“which pip3”和“pip3 --version”试了下,发现对应的是python3.7的pip3。。。我尼玛,,什么时候电脑里多了个python3.7,我用的是python3.5的。。想了下怎么把命令pip3对应到python3.5的pip3,决定通过.bash_profile修改,source后试了下,还是把numpy装到3.7的路径下。。于是把.bash_profile又改了回来,然后用python3.5下的pip3的绝对路径直接安装numpy,终于安装在python3.5的site-packages下。测试,终于正常了。。
回想一下,虽然似乎第一时间应该反应出是pip3安装的路径出问题,但确实也没想到Mac里多了个python3.7.跟着网上的资料一步步排查,虽然都不成功,但最后还好还是解决了。问题的关键在于,不知道什么时候多了个python3.7,pip3对应的版本被改了,导致安装库的路径出错。以我的回顾,我猜有可能是在用homebrew装OpenCV时顺带给我搞了个python3.7,因为我带的参数里只写了python3,然后homebrew直接给搞了个最新版的python版本并在目录下装OpenCV,估计也是这个时候pip3对应的版本被改了。所以得出的经验是,以后python装库的时候,最好用pip3,尽量不要用homebrew,指不定又有什么鸡巴坑,操!