我已经安装了带有include opencv +贡献的whl文件,因为我想使用SIFT算法。我在conda环境中使用pip安装了它,所以当我在“ conda list”中提示时 “ opencv-python 3.4.5 + contrib” 但是,当我尝试运行“ ModuleNotFoundError:没有名为'cv2'的模块”时。我的项目也使用了正确的环境
import cv2
sift = cv2.xfeatures2d.SIFT_create()
ModuleNotFoundError: No module named 'cv2'
答案 0 :(得分:1)
可能您正在加载python2,而您使用的conda环境包含python3可执行文件,反之亦然。
您正在使用哪个可执行文件执行这些行?如果它在系统目录中,则没有与conda list
相同的库。
您可以在Linux上加which
来获取可执行文件的绝对路径,例如which python
或which python3
。
另请参阅官方的conda文档:https://conda.io/docs/user-guide/getting-started.html#managing-python
我个人不喜欢conda,因为它会弄乱太多东西,我通常使用pip / virtualenvs或pipenv安装所有内容。
答案 1 :(得分:0)
1)删除所有现有的opencv安装
2)以这种方式重新安装(python 3)
python -m pip install opencv-python
3)还有瞧!
> import cv2
> sift = cv2.xfeatures2d.SIFT_create()
答案 2 :(得分:0)
关于ModuleNotFoundError,可能有2个问题:没有名为“ cv2”的模块。
找到cv2.so文件并将其移至usr / local / lib / python3.6 / site-packages
find / -name 'cv2.so'
可能的输出/usr/local/lib/python3.6/site-packages /
cd /usr/local/lib/python3.6/site-packages/
cp cv2.so /usr/lib/python3.6/site-packages/
然后退出终端并重新运行。
vi /etc/profile
编辑配置文件,并将export PYTHONPATH=/usr/local/lib/python3.6/site-packages:$PYTHONPATH
添加到最后一行。