在运行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
,它已被完全删除)
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句