电脑里面一直有Python+OpenCV,最近两次不明原因的重启,之后突然发现No module named cv2
:
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named cv2
我的印象里,cv2
就是编译好的一个cv2.so
,放在Python的sys.path
,先查看这个文件是否还在:
sudo find / -name 'cv2.so'
# /usr/local/lib/python2.7/site-packages/cv2.so
再检查是不是系统路径被更改了:
echo $PYTHONPATH
# /usr/local/lib/python2.7/site-packages/:
然后检查Python中的sys.path
:
import sys
sys.path
结果发现/usr/local/lib/python2.7/site-packages/
路径也在,切换到这里之后,发现cv2.so
变成了一个软链接:
cd /usr/local/lib/python2.7/site-packages/
ls -lah
# lrwxr-xr-x 1 rainy admin 66B 7 3 10:30 cv2.so -> ../../../Cellar/opencv/2.4.11_1/lib/python2.7/site-packages/cv2.so
cd ../../../Cellar/opencv
# no such file or directory: ../../../Cellar/opencv
而/usr/local/Cellar
是Homebrew保存下载包的地方,不清楚什么时候我的cv2.so
被替换到这里。无奈只能再用Homebrew安装一次opencv:
brew tap homebrew/science
brew tap --repair
brew install opencv
安装完检验一下:
>>> import cv2
暂时没有时间研究清楚到底发生了什么,虽然相对于自己编译OpenCV的痛苦经历,Homebrew安装起来确实省事不少,可是原本安装好的文件被莫名其妙被替换掉,还是很不爽。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.