【问题标题】:OpenCV-Python ImportError: DLL load failed: The specified module could not be foundOpenCV-Python ImportError:DLL加载失败:找不到指定的模块
【发布时间】:2017-06-21 06:43:32
【问题描述】:

我正在使用 Python 3.6.0 (Anaconda3) 和 jupyter notebook 开发 Windows 10。在这篇文章中,我已经在 cmets 的帮助下成功安装并导入了 OpenCV-Python。

现在的问题是,如果我从安装 opencv 的同一命令提示符导入 opencv (ijmport cv2),则导入时没有任何错误。 但是如果我从另一个命令提示符导入 opencv,那么它会给我这个错误:

ImportError: DLL load failed: 找不到指定的模块。

由于我的声誉是 3,所以我无法附上任何图片来展示这一点。所以我在这里解释一下。

命令提示符1:

C:\Users\Prachi\AppData\Local\Programs\Python\Python36-
32\Anaconda3\Scripts>pip install opencv_python-3.2.0+contrib-cp36-cp36m-
win_amd64.whl
Processing C:\Users\Prachi\AppData\Local\Programs\Python\Python36-
32\Anaconda3\Scripts>pip install opencv_python-3.2.0+contrib-cp36-cp36m-
win_amd64.whl
Installing collected packages: opencv-python
   Found existing installation: opencv-python-3.2.0.7
      Uninstalling opencv-python-3.2.0.7:
           Successfully uninstalled opencv-python-3.2.0.7
Successfully installed opencv-python-3.2.0+contrib
C:\Users\Prachi\AppData\Local\Programs\Python\Python36-
32\Anaconda3\Scripts>python
Python 3.2.0 |Anaconda4.3.1(64-bit)| (default, Dec 23 2016, 11:47:51) [MSC 
v.1900 64-bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>import cv2
>>>

命令提示符2:

C:\Users\Prachi\AppData\Local\Programs\Python\Python36-
32\Anaconda3\Scripts>python
Python 3.2.0 |Anaconda4.3.1(64-bit)| (default, Dec 23 2016, 11:47:51) [MSC 
v.1900 64-bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Prachi\Anaconda3\lib\site-packages\cv2\__init__.py", line 7, 
in <module>
   from . import cv2
ImportError: DLL load failed: The specified module could not be found.
>>>

这就是为什么每当我打开新的命令提示符开始编码时,我必须再次安装 opencv 然后使用它。 希望这个解释有助于理解问题。

【问题讨论】:

  • 尝试在 Anaconda 提示符中安装 opencv-python 时遇到什么错误?
  • 错误是:FileNotFoundError:在当前的win64通道中找不到文件。我从这个链接lfd.uci.edu/~gohlke/pythonlibs/#opencv下载了opencv我尝试了32、64位、contrib+每种类型,但是对于每个文件,上面的错误都在那里。
  • 如果 pip install opencv-python 在 anaconda 提示符下失败,您可以尝试按照此处stackoverflow.com/questions/38787748/… 或此处rivercitylabs.org/… 的说明手动安装opencv3。另一个观察:从 cmets 我了解到不支持 32 位 linux 系统。
  • pip install opencv-python 成功安装opencv。但是当我在jupyter notebook中写import cv2时,出现了这个错误——ImportError: DLL load failed: The specified module could not be found.
  • 不知道jupyter notebook是否知道如何使用anaconda管理的python解释器。如果您的 pip 安装正常,那么问题很可能是您使用的任何 IDE 运行您的代码都不知道 Anaconda python 解释器在哪里。

标签: python opencv dll anaconda importerror


【解决方案1】:

您可以尝试使用此conda install 命令为Python 3.6 安装OpenCV 3.2.0conda-forge 存储库确实有用于 32-bit64-bit Windows 的 OpenCV 3.2.0 二进制文件。

conda install -c conda-forge opencv=3.2.0

如果您需要 opencv_contrib 模块,可以从unoffice website 下载二进制文件并将其安装到Anacondapip install

  • pip install opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win32.whl (x86 Win)
  • pip install opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win_amd64.whl (x64 Win)

注意pip安装的包不会被conda list命令显示。

然后在命令提示符中输入import cv2 验证是否安装成功,如下所示。

如果您对import cv2 有问题,请仔细检查Windows Environment Variables 设置,如下所示。

  1. OPENCV_DIR 指向您的 OpenCV 可执行文件,例如C:\Program Files\OpenCV 3.2.0\x64\vc14
  2. PATH=%PATH%;%OPENCV_DIR%\bin

【讨论】:

  • 我也这样做了:pip install opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win_amd64.whl 但是当我安装opencv时,无论是通过这种方法还是通过上述conda-forge的方法对我来说,当我从同一命令提示符打开 jupyter notebook 时,导入 cv2 是成功的。但是当我从新的命令提示符打开 jupyter notebook 时,这又给了我这个错误 - ImportError: DLL load failed: The specified module could not be found。我是否必须始终先安装 opencv 然后启动 jupyter notebook?这非常耗时。
  • 你能在第一次启动 Jupyter 时继续编码和运行opencv 脚本吗?如果您可以从网络或同一时刻将第一个 Jupyter 用于opencv', why you have to launch the second instant? You can run multiple notebooks .ipymb`。
  • 是的,情况就是这样,当我在同一个命令提示符下工作时,我可以使用 cv2 工作,即 import cv2 工作,但是当我从其他命令提示符运行 jupyter notebook 时,它给了我那个 dll错误。您建议在命令提示符中验证是否成功的方式不是。这适用于我安装 opencv 的命令提示符,但是当我打开其他并编写 import cv2 时,它给了我同样的错误。我无法理解原因。
  • @Prachi 看到我更新的答案。顺便说一句,您的问题没有明确说明您在此处评论的问题。建议您在明确的上下文中用更多信息来补充您的问题。添加屏幕截图将有助于所有审阅者了解您遇到的问题。
  • @Prachi 这很奇怪。建议您在 Anaconda 中创建一个新的虚拟环境,然后安装 OpenCV 以避免任何冲突。或者卸载 Anaconda 以刷新所有内容,然后重试。
【解决方案2】:

我通过做这些事情意外地解决了它:

导航到Anaconda安装目录:

cd C:\Users\Prachi.................\Anaconda3\Scripts

conda-forge存储库安装opencv

conda install -c conda-forge opencv 

这个安装了OpenCV 3.2.0-np113py36_203 conda-forge

在同一个命令提示符下,我输入了jupyter notebook

import cv2在jupyter notebook窗口中执行成功。

【讨论】:

    【解决方案3】:

    C:\Users\Admin>python Python 3.7.6(默认,2020 年 1 月 8 日,20:23:39)[MSC v.1916 64 位 (AMD64)] :: Anaconda, Inc. on win32

    警告: 这个 Python 解释器在 conda 环境中,但是环境有 没有被激活。库可能无法加载。激活这个环境 请看https://conda.io/activation

    输入“帮助”、“版权”、“信用”或“许可”以了解更多信息。

    导入 cv2 回溯(最近一次通话最后): 文件“”,第 1 行,在 文件“C:\Users\Admin\ac3\lib\site-packages\cv2_init_.py”,第 5 行,在 从 .cv2 导入 * ImportError:DLL 加载失败:找不到指定的模块。 点安装简历 文件“”,第 1 行 点安装简历 ^ SyntaxError:无效的语法 点安装opencv 文件“”,第 1 行 点安装opencv ^ SyntaxError:无效的语法 退出()

    C:\Users\Admin>pip install opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win_amd64.whl 警告:要求“opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win_amd64.whl”看起来像一个文件名,但该文件不存在 错误:opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win_amd64.whl 不是有效的轮子文件名。

    C:\Users\Admin>opencv-python 'opencv-python' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

    C:\Users\Admin>pip install opencv-python 已满足要求:c:\users\admin\ac3\lib\site-packages 中的 opencv-python (4.5.1.48) 已满足要求:c:\users\admin\ac3\lib\site-packages 中的 numpy>=1.14.5(来自 opencv-python)(1.19.5)

    C:\Users\Admin>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-10
      • 2016-08-19
      • 2016-08-22
      • 2018-10-23
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多