导入OpenCV -导入cv 2或cv 3,为什么目录很重要?

rqmkfv5c  于 2023-05-29  发布在  其他
关注(0)|答案(3)|浏览(215)

我第一次尝试使用OpenCV for Python 3。要安装,我只需在终端中输入pip3 install opencv-python即可。当我这样做时,我在Finder(我在Mac上)看到,在/usr/local/lib/python3.7/site-packages中,我现在有一个新的文件夹,名为"cv2"
这很奇怪为什么不是cv 3,因为我用的是pip 3?我不知道。
当我尝试从python3中选择import cv2时,它显示No module named 'cv2'。幸运的是StackOverflow already has a solution:如果我首先更改目录,如:
cd /usr/local/lib/python3.7/site-packages
然后我就可以打开cv2了。**我不知道为什么OpenCV需要这个步骤。**例如,我不需要对import numpy执行这个步骤; numpy并不关心我从哪个目录开始,它就像cv 2一样被列出。
无论如何,我将目录更改为site-packages,启动python3,和我import cv2。现在出现了一个新的错误。这一次找到了cv2,但它说:

from .cv2 import *  
ModuleNotFoundError: No module named 'cv2.cv2'

我也有Python 2.7。如果我尝试cd /usr/local/lib/python2.7/site-packages,然后启动Python 2.7,我可以导入cv2。这是可以的,但我想使用OpenCV与Python3。
让我总结一下。
(1)当我从任何目录启动时,如何获取cv 2或cv 3导入?这可能吗
(2)如何获得python3的cv 3?cv 2在python3中似乎有问题,因为没有cv2.cv2

b1zrtrql

b1zrtrql1#

我们唯一需要知道的是,cv2中的2不是一个版本。cv2使用C++的API,而cv使用C API。它的版本在CV2中不断更新。

x8diyxa7

x8diyxa72#

没有“cv3”。
“cv2”代表API版本,而不是库版本。
API版本1是针对C(和Python)的。API版本2是C++(和Python)。
API版本2自库版本2.0起存在。
API版本1在整个库版本3.x中被逐步删除。它在库版本4.0中不再可用。
如果你安装了这个包,但是你的Python不能使用import cv2 as cv(官方推荐的import语句),那么你要么把这个包安装到了一个虚拟环境中,要么你有多个Python,并且你把它安装到了一个与你试图导入它的Python不同的Python中。

anhgbhbe

anhgbhbe3#

没有cv3,只有import cv2,opencv old或latest更新为旧python或latest。

相关问题