导入错误: DLL加载失败: %1 不是一个有效的Win32应用程序. 而DLL是

2024-04-24 22:01:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我的情况很像ImportError: DLL load failed: %1 is not a valid Win32 application的情况,但答案对我不起作用。

我的Python代码说:

import cv2

但这一行抛出了这个问题标题中显示的错误。

我在这台64位计算机的C:\lib\opencv中安装了OpenCV。我正在使用64位Python。

我的PYTHONPATH变量:PYTHONPATH=C:\lib\opencv\build\python\2.7。这个文件夹包含cv2.pyd,仅此而已。

我的路径变量: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路径环境变量”。但是如上所示,我的路径中已经有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?


Tags: build路径文件夹binlib情况loadcv2
3条回答

Unofficial Windows Binaries for Python Extension Packages

你可以在这里找到任何python库

哇,我又找到了一个解决这个问题的例子。以上都不起作用。最后,我使用python的能力来反思加载的内容。对于Python2.7,这意味着:

import imp
imp.find_module("cv2")

这在Anaconda DLL目录中发现了一个完全意外的“cv2.pyd”文件,多次卸载/安装尝试都没有触及该文件。Python首先在那里寻找,但没有找到我的好安装。我删除了cv2.pyd文件,再次尝试imp.find_module(“cv2”),python立即找到了正确的文件,cv2开始工作。

因此,如果其他解决方案都不适合您,请确保使用python内省来查看python试图加载的文件。

请检查您使用的python版本是否也是64位的。如果不是,那就可能是问题所在。您将使用32位python版本,并为OPENCV库安装64位二进制文件。

相关问题 更多 >