Rom*_*man 30 python opencv python-import importerror
我刚刚在Windows 7机器上安装了OpenCV.结果,我得到一个新目录:
C:\OpenCV2.2\Python2.7\Lib\site-packages
在这个目录中,我有两个文件:cv.lib
和cv.pyd
.
然后我尝试使用opencv
Python.我做以下事情:
import sys
sys.path.append('C:\OpenCV2.2\Python2.7\Lib\site-packages')
import cv
Run Code Online (Sandbox Code Playgroud)
因此,我收到以下错误消息:
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
添加
正如在这里推荐的那样,我已将内容复制C:\OpenCV2.0\Python2.6\Lib\site-packages
到了C:\Python26\Lib\site-packages
.它没有帮助.
增加2
我的环境变量具有以下值:
Path=C:\Program Files\MiKTex\miktex\bin;C:\OpenCV2.2\bin;C:\Python26;
PYTHONPATH=C:\OpenCV2.2\Python2.7\Lib\site-packages
Run Code Online (Sandbox Code Playgroud)
我需要改变什么吗?我需要添加一些东西吗?
增加3
我认为我的问题很普遍:如何使用图书馆?可能我需要在某处找到*.ddl文件?那么我需要使用包含此文件的目录的名称作为某些环境变量的值吗?或者我可能需要使用sys.addpath
?我还需要知道调用库的方式与包含库的文件的名称有什么关系.
增加4
有趣的是,当我输入时import cv
,我得到:
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
但是当我输入时,import opencv
我得到:
ImportError: No module named opencv
Run Code Online (Sandbox Code Playgroud)
增加5
有人建议我使用不一致的python版本.更详细的说,OpenCV尝试使用Python2.7,我有Python2.6.所以,我已经安装了Python 2.7.它有所不同.现在我没有旧的错误消息,但我有一个新消息:
ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import
Run Code Online (Sandbox Code Playgroud)
增加6
我已经设法通过安装numpy解决了这个问题.花了一些时间,因为我没有意识到有不同的numpy安装程序对应不同版本的Python.一些细节可以在我对自己问题的回答中找到(见下文).
我怀疑你遇到了同样的问题.如果您有64位版本的Python,则无法加载32位DLL.OpenCV目前只提供32位二进制文件.如果你想要64位.pyd和.dll文件,你必须自己编译它们.OpenCV Wiki上有一些说明,但它不适合胆小的人.期望投入大量时间.
最简单的解决方案是:
PythonXY发行版包括pyopencv - 一组很好的OpenCV钩子.唯一的限制是它是32位,所以不要计划用它来处理千兆像素天文数据!;)
如果您必须具有64位版本,请按照这些说明将OpenCV用Visual Studio 2010进行编译.有关stackoverflow的讨论,描述了使用VC Express构建64位应用程序.
编辑: OpenCV现在附带64位Python二进制文件..dll文件需要在您的路径中的某个位置(我将它们放在脚本文件夹中),并且.pyd文件放在您的site-packages目录中.