使用conda安装OpenCV

19

这个问题与“如何通过Conda安装Python OpenCV?”不同,因为那个问题是在5年前提出的,当时所有软件包都有不同的版本。我尝试了那个问题的所有答案,但都没有成功。有关详细信息,请参见问题文本。

如何在2019年7月使用conda安装opencv?在一个全新安装的anaconda上,我执行了conda update conda(成功),然后尝试了以下步骤:

(base) C:\Users\mlearning>python
Python 3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
>>> import cv
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv'

(base) C:\Users\mlearning>conda install -c menpo opencv3
Collecting package metadata (repodata.json): done
Solving environment: (goes into infinite loop, after 10 minutes I pressed ^C)

(base) C:\Users\mlearning>conda install opencv
Collecting package metadata (repodata.json): done
Solving environment: failed
Initial quick solve with frozen env failed.  Unfreezing env and trying again.
Solving environment: failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Package zipp conflicts for:
importlib_metadata -> zipp[version='>=0.3.2']
path.py -> importlib_metadata[version='>=0.5'] -> zipp[version='>=0.3.2']
anaconda==2019.03=py37_0 -> importlib_metadata==0.8=py37_0 -> zipp[version='>=0.3.2']
zipp
Package importlib_metadata conflicts for:
anaconda==2019.03=py37_0 -> importlib_metadata==0.8=py37_0
path.py -> importlib_metadata[version='>=0.5']
Package hdf5 conflicts for:
anaconda==2019.03=py37_0 -> h5py==2.9.0=py37h5e291fa_0 -> hdf5[version='>=1.10.4,<1.10.5.0a0']
hdf5
opencv -> hdf5[version='>=1.10.2,<1.10.3.0a0,>=1.8.18,<1.8.19.0a0,>=1.8.20,<1.9.0a0']
h5py -> hdf5[version='>=1.10.1,<1.10.2.0a0,>=1.10.2,<1.10.3.0a0,>=1.10.4,<1.10.5.0a0,>=1.8.18,<1.9.0a0']
pytables -> hdf5[version='>=1.10.1,<1.10.2.0a0,>=1.8.18,<1.8.19.0a0,>=1.8.18,<1.9.0a0']
Package mkl-service conflicts for:
mkl-service
anaconda==2019.03=py37_0 -> mkl-service==1.1.2=py37hb782905_5

(base) C:\Users\mlearning>conda install -c conda-forge opencv
Collecting package metadata (repodata.json): done
Solving environment: failed
Initial quick solve with frozen env failed.  Unfreezing env and trying again.
Solving environment: failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Package hdf5 conflicts for:
anaconda==2019.03=py37_0 -> hdf5==1.10.4=h7ebc959_0
h5py -> hdf5[version='1.10.1,1.8.17|1.8.17.*,1.8.18|1.8.18.*,>=1.10.2,<1.10.3.0a0,>=1.10.3,<1.10.4.0a0,>=1.8.20,<1.9.0a0']
pytables -> hdf5[version='1.8.18|1.8.18.*,>=1.10.4,<1.10.5.0a0,>=1.8.18,<1.8.19.0a0,>=1.8.18,<1.9.0a0']
hdf5
Package mkl-service conflicts for:
mkl-service
Package importlib_metadata conflicts for:
importlib_metadata
path.py -> importlib_metadata[version='>=0.5']

可能是如何通过Conda安装Python OpenCV?的重复问题。 - merv
4
请使用conda install -c conda-forge opencv安装。或者更好的方法是为此创建一个新环境,让Conda自行解决最适合它的Python版本:conda create --name env_name -c conda-forge opencv - merv
1
@merv - 这不是那个问题的重复,因为我尝试了所有答案,我重申,所有答案都不起作用。 - user31264
但如果你有有价值的信息,请回答以帮助其他成员。优秀的答案会受到赞赏。 - user31264
1
@merv 哇,老兄。我只想说谢谢你。我真的花了过去12个小时来解决一个微小的问题,而这就是解决方法。谢谢你,你是英雄。 - Mogarbobac
显示剩余6条评论
7个回答

18

我在使用conda安装opencv过程中遇到了无数问题。下面是我的方法,如果您还没有创建环境,请先创建一个。

conda create -n py36 python=3.6
conda activate py36

使用 pip 而非 conda 安装 opencv

pip install opencv-python

如果仍然存在问题,请卸载 opencv,更新 ffmpeg

conda install -c conda-forge ffmpeg 

然后重新运行pip

更新于2020年

使用你的环境激活安装pip

验证pip是否在你的环境中

whereis
pip: /path/anaconda3/envs/your_env/bin/pip

使用pip安装opencv

~/anaconda3/envs/your_env/bin/pip3 install opencv-python


2
我在使用conda安装opencv时遇到了无数的问题。您能详细说明一下吗?使用pip安装应该是最后的选择。 - AMC
无法在2020年6月运行;结果显示“ImportError: DLL load failed: 找不到指定的模块”。 - Peteris
1
在Ubuntu 2022上工作,谢谢。 - Tom

7
创建一个全新的环境,并让conda处理兼容性问题。
conda create -n cv -c conda-forge opencv matplotlib

这将创建一个名为“cv”的新环境,其中包括Python、OpenCV和Matplotlib。
今天(2019年10月11日)安装了以下内容:
  • Python 3.7.3
  • OpenCV 4.1.1
  • MatPlotLib 3.1.1
  • Numpy 1.17.2
  • ...以及所有其他依赖项。

4
直接运行。
pip install opencv-python

在Spyder中代替

2
我遇到了类似的问题(只有hdf5冲突)。 原因是使用不兼容的Python版本。
在安装openCV之前,创建一个新的Python3.6环境怎么样? 您可以像这样创建新环境。 $ conda create -n py36 python=3.6
此外,您还应该键入此命令以激活。 $ activate py36

3
为什么不从一开始就创建一个环境,以OpenCV是您要安装的内容为中心呢?例如:conda create -n opencv_env opencv。如果您想要Python 3.6,也可以指定:conda create -n opencv_env opencv python=3.6 - merv
@merv 没有特别的原因。 如果非得说,我不知道 conda 命令的符号表示法。 - ashiba
2
在安装openCV之前创建一个新的python3.6环境怎么样?无论如何,您都应该为每个项目使用单独的环境。 - AMC

1

你能详细说明一下你遇到的问题吗? - AMC

0
最简单的方法是:

conda install pip
pip install opencv-python

玩得开心!


0

opencv现在可以在主要anaconda频道上使用,因此与早期的答案相反,现在无需使用conda-forge(除非您需要其他仅在那里可用的依赖项)或pip(假设您更喜欢使用conda)。

要创建一个名为myopencvenv的新环境并安装opencv,请使用

conda create -n myopencvenv opencv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接