我有一个非常像ImportError: DLL load failed: %1 is not a valid Win32 application的情况,但答案没有为我工作。ImportError:DLL加载失败:%1不是有效的Win32应用程序。但DLL的有
我的Python代码说:
import cv2
但该行抛出这个问题的标题所示的错误。
我在这台64位机器上安装了C:\lib\opencv
的OpenCV。我正在使用64位Python。
我的PYTHONPATH变量:PYTHONPATH=C:\lib\opencv\build\python\2.7
。该文件夹包含cv2.pyd
,就是这样。
我的PATH变量:Path=%OPENCV_DIR%\bin;...
该文件夹包含39个DLL文件,例如opencv_core246d.dll
。
OPENCV_DIR具有此值:OPENCV_DIR=C:\lib\opencv\build\x64\vc11
。
解决方案ImportError: DLL load failed: %1 is not a valid Win32 application表示将“新的opencv二进制文件路径(C:\opencv\build\bin\Release
)添加到Windows PATH环境变量”。但是如上所示,我的PATH中已经有OpenCV二进制文件夹(C:\lib\opencv\build\x64\vc11\bin
)。而我的OpenCV安装没有任何发布文件夹(build/java下的空白文件除外)。
任何关于发生了什么问题的想法?我可以告诉Python详细追踪加载过程吗?究竟是什么DLL寻找?
谢谢, 拉斯
编辑:
我只注意到的是,根据http://www.dependencywalker.com/,在C:\lib\opencv\build\python\2.7
的cv2.pyd
是32位,而我运行的机器和Python的是64位。这可能是问题吗?如果是这样,我可以在哪里找到64位版本的cv2.pyd?
点击[浏览](HTTP:// WWW .lfd.uci.edu /〜gohlke/pythonlibs /#opencv)并找到64位opencv –
@KillConsole:谢谢,我会试一试。由于我下载的安装包具有x86和x64子文件夹,因此我认为它包含了64位的所有内容。显然不是。万岁,修好了!现在我们正在处理“ImportError:numpy.core.multiarray无法导入”,所以我会尝试用于64位numpy的同一站点。如果你把你的评论写成答案,我会赞成并接受它。 – LarsH
你使用了哪个Python版本? (而不是处理器位版本) – 2015-02-03 12:49:44