问题背景:
首先我之前已经在anaconda文件夹下的envs文件夹里建立好了一个虚拟环境python37,然后我用pycharm新建工程时,就直接用了这个已建好的虚拟环境。此时我点进新工程文件夹,发现里面多了一个文件夹教venv。
起初我认为是系统自动把我建好的虚拟环境python37复制到了这里,也就是说这个工程目录底下有了自己的虚拟环境,而不是我之前建立的那个。
于是我安装cv包时,就直接在这个新虚拟环境下的Scripts文件夹里安装了(如下图),在这个文件的Scripts目录下输入了
pip install python-opencv
然后也安装成功了。
但是当我返回上一级按照教程运行python,输入import cv2或者import cv2 as cv时,却显示ModuleNotFoundError: No module named 'cv2'。
import cv2
import cv2 as cv
当时很纳闷,去看了网上的很多方法都不符合我的情况,因为我是安装成功了的,并且在该工程venv文件夹下的Lib文件夹里可以找到cv2包(如图)
并且我尝试了直接在cv2的上一级文件夹site-packages下输入import cv2,发现此时并没有出错
但是再往上一级便又会报出ModuleNotFoundError: No module named 'cv2'的错误。
但是我看的网课视频中老师演示的却可以直接在D盘运行而不出错。
于是我反复看了几遍视频,发现老师是在anaconda文件夹下的Scripts里运行的pip install,不是在项目里的环境文件夹下。
于是我找到我一开始建立的python37虚拟环境的位置,在其Scripts文件夹下pip install,发现问题就解决啦。
原理思考:
我感觉是因为在项目里添加cv包,本来就是只供这个项目使用(非全局的),所以因为文件夹的一些属性问题,可能只能在上一级中搜索得到。(试过了在pycharm中用没问题,但在cmd窗口可能只能在它的同级目录中能搜索得到)文章来源:https://www.toymoban.com/news/detail-813608.html
但是对于在anaconda中创建的虚拟环境,一旦激活便是全局通用,所以在任何目录下运行就都不会出错了。文章来源地址https://www.toymoban.com/news/detail-813608.html
到了这里,关于虚拟环境中安装cv包报错:ModuleNotFoundError: No module named ‘cv2‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!