在运行Python 3.7.3的conda环境中的Ubuntu上运行
conda install -c conda-forge opencv
即使https://anaconda.org/conda-forge/opencv表示版本4.11,我仍然得到OpenCV 3.4.2(先由import cv2
然后由cv2._version__
进行检查)。为什么?
请注意,我以前没有安装OpenCV(我运行conda uninstall opencv
,并且已将其完全删除)
答案 0 :(得分:2)
Conda v4.7推出了新的依赖关系解决策略,可以解释这种现象。即,现在解决过程分为两个阶段
--freeze-installed|--no-update-deps
标志解决。如果可行,那就完成了。否则,请继续... 这样做的原因是通过避免必须更改环境中的任何内容来提供更快的解决方案和安装体验。
在这种情况下发生了什么? OpenCV的依赖项要求之一在v4.1.1中可能比您所安装的要新,但是该依赖项的版本足以安装OpenCV 3.4.2。因此,唯一会改变的是添加opencv
以及缺少的依赖项。从技术上讲,它仍然是“正确的”-您只要求“ Conda Forge的OpenCV ”-但这显然不同于以前的Conda求解器。
如果您知道需要特定版本,则可以随时指定它
conda install -c conda-forge opencv=4.1.1
并且由于Conda无法在不更新您的环境中某些内容的情况下安装它,因此第一轮解决方案将失败,而完整解决方案将为您解决。
当然,您可能并不总是知道最新的版本号,也不想每次都必须在Anaconda Cloud上查找它。幸运的是,有一个--update-deps
标志实际上跳过了第一个求解阶段,直接进入了完整求解。这将为您的系统安装最新版本,并更新任何依赖项。
conda install --update-deps -c conda-forge opencv