Python中的ImportError是什么意思?

1 投票
3 回答
1550 浏览
提问于 2025-04-16 12:12

我尝试导入一个模块:

import cv

结果出现了以下错误信息:

ImportError: DLL load failed: The specified module could not be found.

但是如果我尝试导入一个肯定不存在的库,比如:

import blabla

我得到的是:

ImportError: No module named blabla

所以,我得出的结论是,cv库并不是完全隐藏的。Python能看到一些东西。有没有人知道Python能看到什么,以及缺少了什么?

补充说明

Traceback (most recent call last):
File "<stdin>", line 1, in <module>

补充说明 2

在包含cv库的目录下,有一个子目录(C:\OpenCV2.2\bin),里面有很多*.dll文件。所以,我尝试了:

import sys
sys.path.append("C:\OpenCV2.2\bin")

但我仍然遇到“dll加载失败”的问题。有没有办法找出到底缺少哪个“dll”文件?我的意思是,Python试图找到一个特定的dll文件(比如cv.dll),但找不到它?

3 个回答

0

很可能是Python找到了一个纯Python的模块cv,但这个模块找不到它需要的一个DLL文件。

1

ImportError(导入错误)可能会让人感到困惑,因为它可能是在你尝试导入的模块又去导入其他东西时发生的。而且,由于所有的导入代码都是用C语言写的,有时候你得不到有用的错误追踪信息。

在这种情况下,看起来cv本身可能是一个DLL(动态链接库),或者它尝试导入的某个模块是DLL。这个DLL无法加载,因为它依赖于你系统上缺失的其他DLL。

如果你无法轻易找到缺失的依赖项,可以尝试使用微软的'depends'工具来查找。

3

在这个特定的情况下,“DLL加载失败”是因为你在用Python 2.6配合OpenCV 2.2。你应该使用Python 2.7,因为cv.pyd这个文件是和python27.dll这个文件关联在一起的。

撰写回答