【问题标题】:windows, ImportError: DLL load failed: The specified module could not be foundwindows, ImportError: DLL load failed: 找不到指定的模块
【发布时间】:2015-12-16 18:39:50
【问题描述】:
import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('12.jpg',0)
orb = cv2.ORB()
kp = orb.detect(img,None)
kp, des = orb.compute(img, kp)
img2 = cv2.drawKeypoints(img,kp,color=(0,255,0), flags=0)
plt.imshow(img2),plt.show()

我已将numpycv2 模块添加到我的python 目录并设置它们的环境变量。

我也安装了msvcp71.dllmsvcr71.dll,但是这个错误还没有解决。

那么我该如何解决这种 dll 问题呢?

版本信息:

  1. Python 3.2

  2. numpy-1.6.1-win32-superpack-python3.2

  3. opencv-3.0.0

【问题讨论】:

  • 你是如何安装 numpy 和 OpenCV 的?您将它们添加到哪个目录,您到底添加了什么?你设置了什么环境变量?请edit您的问题并添加所有的相关详细信息。我们无法读懂你的想法,也不知道你实际上做了什么。此外,请将回溯的全文添加到您的问题中。

标签: python windows opencv numpy dll


【解决方案1】:

我怀疑您将 x64 pythonx86 cv2.pyd 文件混合在一起,反之亦然。简单的方法是在这里安装正确版本的opencv:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

在此处查看讨论:

  1. ImportError: DLL load failed: %1 is not a valid Win32 application. But the DLL's are there
  2. How to use OpenCV in Python?

检查您的python 拱门:

In [2]: import platform

In [3]: platform.architecture()
Out[3]: ('64bit', 'WindowsPE')

cv2.pyd: 我建议使用PESnoop:

D:\Anaconda\Lib\site-packages> PESnoop cv2.pyd /pe_dh
-------------------------------------------------------------------------------
 PESnoop 2.0 - Advanced PE32/PE32+/COFF OBJ,LIB command line dumper by yoda
-------------------------------------------------------------------------------

Dump of file: cv2.pyd...
Modus:        64bit Portable Executable Image...

讨论:

https://serverfault.com/questions/29958/how-to-tell-if-a-windows-application-requires-64-bit

How can I determine for which platform an executable is compiled?

【讨论】:

  • 我检查了我的两个文件,它们都是 64 位的。您对为什么会发生这种情况有其他想法吗?
  • @roi.holtzman 你的操作系统上有多个版本的 pyopencv 吗?也许你启动了 pyA 并检查了 pyB 等......
  • @roi.holtzman 您可以提出一个新问题并发布您的详细试验。
猜你喜欢
  • 2020-12-04
  • 2020-07-02
  • 2020-06-30
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多