2013-01-31 115 views
23

我有这个问题,我尝试在python上导入cv2并获取以下错误消息。ImportError:DLL加载失败:%1不是有效的Win32应用程序

>>> import cv2 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

我不知道有这个很多职位在那里建议,包的位数是从Python包不同。

但是,我运行的所有东西都是64位。我在win7 64位,我有winpython 2.7.3.3,64位分布,我编译opencv 64位,提供指令here,并将cv2.pyd DLL放在Python的Lib/site-packages文件夹中。

不幸的是,使用32位版本的python的建议不再适用于我,因为我必须处理numpy数组对32位太大。

谢谢!

------ UPDATE

唯一缺少的是对新的OpenCV的二进制文件的路径(C:\ OpenCV的\建设\ BIN \发布)添加到Windows PATH环境变量,重启蟒蛇。

一切似乎现在工作正常!

回答

20

的导入错误消息的32位版本是有点误导,因为的参考Win32的,而这个问题只是OpenCV的DLL文件都没有发现。

此问题已通过将路径opencv二进制文件添加到Windows PATH环境变量(例如,在我的计算机上此路径为:C:\ opencv \ build \ bin \ Release)解决。

+6

采取什么措施来做到这一点? – Exzile

+0

我没有得到的是,为什么错误消息没有声明无法加载的DLL? %1似乎只是DLL的名称的占位符。 – antred

+0

好的。因此,如果您在64位计算机上修复该错误,则必须从x64文件夹复制cv2.pyd。 @antred它是一个占位符。它通常被替换为DLL,但不起作用,因为32位无法在64位机器上加载。 –

4

你可以尝试安装OpenCV的

+1

请注意,这个问题已经解决,如问题的更新部分所述。 – Francis

+0

对不起,我的坏:) –

+3

@Francis一旦你找到了解决方案,请始终添加它作为答案,而不是将其添加到您的问题。 – Tshepang

2

或者你必须重建win 64bit的cv2模块。

0

当我有这个错误,它在我的电脑崩溃并重新启动后就消失了。尝试关闭并重新打开IDE,如果不起作用,请尝试重新启动计算机。当我遇到这个错误时,我刚才安装了这些库,而不重新启动pycharm。

从来没有关闭PyCharm首先测试,因为我的爆炸​​电脑不断随机崩溃......在那个工作,但它至少解决了这个问题..小胜利.. :)。

1

所有你需要做的是从x86文件夹中复制文件cv2.pyd(C:\ OpenCV的\建设\ python的\ 2.7 \ 86 \为例)C:\ Python27 \ LIB \定点包\,而不是来自x64文件夹。

希望对你有所帮助。

相关问题