Mac下安装opencv-python-3.4.0.12后Python与Python3导入差异及版本疑问
问题解析与解答
一、两个Python解释器导入差异的原因
这其实是Mac系统中Python2和Python3环境完全隔离导致的:
- Mac默认自带的
python命令指向Python2,而你单独安装的python3是独立的Python3环境,两者的包安装目录完全分开,互不干扰。 - 你用
pip install opencv-python-3.4.0.12安装的包,会被放到Python2的site-packages目录下,而官方的opencv-python包标准导入名就是cv2,所以Python2里import cv2能正常执行;但Python2环境里没装过名为opencv的包,自然会触发找不到模块的错误。 - 你的Python3环境中,应该是之前通过
pip3安装了一个非官方打包的opencv包,但没装官方的opencv-python包,所以import opencv可行,import cv2却找不到模块。
二、应该用import opencv还是import cv2?
优先选import cv2,理由很明确:
- 官方维护的OpenCV Python包是PyPI上的
opencv-python(以及扩展功能的opencv-contrib-python),这些包的标准导入名就是cv2,兼容性、稳定性和后续更新都更有保障。 - 名为
opencv的包大多是非第三方打包的版本,可能存在版本滞后、依赖缺失或功能不全的问题,不推荐使用。
三、cv2是不是指代OpenCV 2版本?
完全不是!这个命名是历史遗留的习惯:
从OpenCV 2.x版本开始,官方重构了C++接口,对应的Python绑定就用了cv2作为模块名。后续OpenCV 3.x、4.x甚至5.x版本都延续了这个命名规则,所以不管你装的是哪个新版本的OpenCV,导入时都用import cv2。
快速解决建议
如果你想在Python3环境中也使用标准的cv2模块,可以执行以下命令安装对应版本:
pip3 install opencv-python==3.4.0.12
内容的提问来源于stack exchange,提问作者stan25
相关产品推荐
相关产品推荐

