文章目录
前言
本人是刚刚接触图像识别的新人一枚。很早就开通csdn,但是一直没有好好利用,记录内容,现在开始尽量把自己遇到的问题逐一记录,供自己回顾,与大家分享。
望各位大佬多多指教。
提示:本人运行环境为Win10 + VScode + Anaconda3=1.10.0(2020.11版本,Python=3.8.5)
一、主要问题:Import “cv2” could not be resolved Pylance
第一次用opencv的时候,安装了Anaconda的环境,不太会操作,也没有创建新的虚拟环境,就在base的环境下使用
pip install opencv-python
安装了opencv,可以调用,然后再在conda的虚拟环境“base”的虚拟环境下又使用命令行
conda install opencv
安装了opencv,同样没有使用问题。
但在我了解到有虚拟环境,或者说运行某一项目在特定环境下运行,可使环境相对“干净”,同时生成依赖也会相对干净,且安装tensorflow失败后,我在这过程中重装Anaconda3(2020.02版本,Python=3.7.6;据说tensorflow1.x仅能在Python3.6和3.7的环境下运行)后,没有安装其他的opencv,仅在新创建的虚拟环境“opencv”下安装opencv时,出现了如题的错误Import “cv2” could not be resolved Pylance,报错如下:
(opencv) F:\Postgraduate_items>C:/Anaconda3/python.exe "f:/Postgraduate_items/001. Intelligent_identification_of_pressure_guages/identification_of_meter/identification_of_meter.py"
Traceback (most recent call last):
File "f:/Postgraduate_items/001. Intelligent_identification_of_pressure_guages/identification_of_meter/identification_of_meter.py", line 1, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
下面,我将介绍一下我解决问题的过程和疑惑。
二、解决过程
1. 在Anaconda3(2020.02版本)下使用pip命令安装opencv-python
完成安装后,现在在anaconda的lib/site-packages
目录下和envs/opencv/lib/site-packages
目录下同样都有opencv的相关包,但是在opencv虚拟环境下运行仍然报错cv2导入失败。
怀疑可能是Anaconda出现某种问题。
2. 重装Anaconda3(2020.10版本)在虚拟环境opencv下安装opencv
完成安装后,目前仅在opencv环境下有opencv的依赖包(即在anaconda的envs/opencv/lib/site-packages
目录下有opencv的相关包),在opencv环境和base环境下运行均报错cv2导入失败。
3. Anaconda3(2020.10版本)pip安装opencv-python
在上述情况2的条件下使用命令行
pip install opencv-python
完成安装后,目前anaconda的lib/site-packages
目录下和envs/opencv/lib/site-packages
目录下同样都有opencv的相关包,但在opencv环境下运行有报错cv2导入失败,如图:
但是在命令行/终端中可以正常运行,无错。
且,无论opencv虚拟环境下是否有opencv的包,均可运行。
此时,若在settings.json中的
(也可通过Ctrl+Shift+P,找到“首选项>打开设置json”选项打开此文件)
加入:
"python.analysis.extraPaths": [
"C:\\Anaconda3", // 自定义模块的相对路径,可多个,可绝对路径
"C:\\Anaconda3\\envs\\opencv\\Lib\\site-packages"
]
// C:\\Anaconda3是Anaconda3文件安装目录
便能取消问题报错。
4. Anaconda3(2020.10版本)在base环境下安装opencv
当我pip uninstall opencv-python
时,在base虚拟环境下安装opencv,命令如下:
conda install opencv
无论是否通过pip命令安装opencv-python,还是是否在opencv环境下通过conda命令安装opencv,均可在命令行/终端中正常运行,但是,在问题中仍有报错(同上图)。
不过在此状态下无论settings,json
中是否有python.analysis.extraPaths
都不会消除报错,实在是不解。
总结
以上可以看出,只要能通过pip安装opencv-python或者在base环境下安装opencv,那么就可以运行项目。
但如果是这样,虚拟环境又有何意义?能起什么作用呢?
如有大佬能看到这个文章,希望能予以解答,感激不尽。