ImportError:DLL加载失败:%1不是有效的Win32应用程序

时间:2013-01-31 15:55:54

标签: python opencv importerror

我遇到此问题,我尝试在python上导入cv2并收到以下错误消息。

>>> 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位分布,我使用提供的指令here编译了64位的opencv并将cv2.pyd dll放在Lib /中python的site-packages文件夹。

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

感谢!!!

------更新

唯一缺少的是将新的opencv二进制路径(C:\ opencv \ build \ bin \ Release)添加到Windows PATH环境变量,重新启动python。

现在一切似乎都运转正常!

7 个答案:

答案 0 :(得分:24)

由于引用了Win32,ImportError消息有点误导,而问题只是找不到opencv DLL。

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

答案 1 :(得分:4)

您可以尝试安装32位版本的opencv

答案 2 :(得分:2)

或者您必须为win 64bit重建cv2模块。

答案 3 :(得分:1)

您所要做的就是将cv2.pyd文件从x86文件夹(例如 C:\ opencv \ build \ python \ 2.7 \ x86 \ )复制到 C:\ Python27 \ Lib \ site-packages \ ,而不是x64文件夹。

希望能帮助你。

答案 4 :(得分:1)

我刚碰到这个,问题是该软件包已经安装在每用户软件包目录中。 (在Windows上。)又名%AppData%\ Python。所以Python首先在那里寻找,找到一个旧的32位版本的.pyd文件,并且没有列出错误。不幸的是,pip卸载本身并不足以清除它,此时pip 10.0.1似乎没有--user参数用于卸载,仅用于安装。

tl; dr从%AppData%\ python \ python27 \ site-packages中删除旧的.pyd为我解决了这个问题。

答案 5 :(得分:1)

混合使用python版本时,也会出现此错误:

例如,如果要加载的任何DLL是使用python 2.7.16编译的,而您尝试使用python 2.7.15导入,则会引发此错误ImportError: DLL load failed: %1 is not a valid Win32 application.

至少我发现这是我的问题。

答案 6 :(得分:0)

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

从未关闭PyCharm首先进行测试,因为我的爆破计算机一直在随机崩溃...正在研究那个,但它至少解决了这个问题..小胜利.. :)。