我的情况与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变量: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处的解决方案表示要向Windows PATH环境变量添加“新的opencv二进制路径(C:\opencv\build\bin\Release
)”。但是,如上所示,我的PATH中已经有OpenCV Binaries文件夹(C:\lib\opencv\build\x64\vc11\bin
)。而且我的OpenCV安装没有任何Release文件夹(除了build / java下为空)。
关于出什么问题的任何想法?我可以告诉Python详细跟踪加载过程吗?究竟要寻找什么DLL?
谢谢,拉斯
[我只是注意到,根据http://www.dependencywalker.com/,cv2.pyd
中的C:\lib\opencv\build\python\2.7
是32位,而我正在运行的计算机和Python是64位。这可能是问题吗?如果是这样,我在哪里可以找到cv2.pyd的64位版本?
Unofficial Windows Binaries for Python Extension Packages
您可以在这里找到任何python库
cv2.pyd
从/opencv/build/python/2.7/x86
复制到C:/Python27/Lib/site-packeges
。错误是>“ RuntimeError:针对API版本9编译的模块,但此版本的numpy为7”]然后安装了
numpy-1.8.0-win32-superpack-python2.7.exe
,opencv正常工作。
>>> import cv2
>>> print cv2.__version__
2.4.13
opencv
之后地点请检查您使用的python版本是否也是64位。如果没有,那可能就是问题所在。您将使用32位python版本,并已为OPENCV库安装了64位二进制文件。
哇,我发现了这个问题的另一种情况。以上都不起作用。最终,我使用python的功能来内省正在加载的内容。对于python 2.7,这意味着:
import imp
imp.find_module("cv2")
这在Anaconda DLL目录中打开了一个完全意外的“ cv2.pyd”文件,多次卸载/安装尝试均未涉及该文件。 Python首先在那儿寻找,却找不到我的好安装。我删除了该cv2.pyd文件,然后再次尝试imp.find_module(“ cv2”),python立即找到了正确的文件,并且cv2开始工作。
因此,如果没有其他解决方案对您有用,请确保您使用python内省来查看python试图加载的文件。
就我而言,我有64位python,而lxml是错误的版本-我也应该一直使用x64版本。我通过在此处下载lxml的64位版本来解决此问题:
https://pypi.python.org/pypi/lxml/3.4.1
lxml-3.4.1.win-amd64-py2.7.exe
这是令人沮丧的问题的最简单答案。
我只是遇到了这个问题,原来只是因为我正在使用x64版本的opencv文件。尝试过x86,它可以正常工作。
如果您的构建系统(在我的情况下为CMake)将文件从<name>.dll
复制到<name>.pyd
,则如果原始文件实际上不是dll,则会出现此错误。就我而言,构建共享库已关闭,因此基础文件实际上是*.lib
。
我通过将pyd
文件加载到DependencyWalker并发现它无效而发现了此错误。
我有同样的问题。这是我所做的:
[我从here下载了pywin32 Wheel文件,然后
我已卸载pywin32模块。要卸载,请在命令提示符下执行以下命令。
pip uninstall pywin32
然后,我重新安装了[[pywin32。要安装它,请在pywin32 wheel文件所在的目录中打开命令提示符。然后执行以下命令。
pip install <Name of the wheel file with extension>
轮文件将类似于:piwin32-XXX-cpXX-none-win32.whl
cv2.pyd
文件夹而不是从/opencv/build/python/2.7/x86
文件夹复制了/x64
文件到C:/Python27/Lib/site-packeges
。我遵循了here提供的其余说明。[由其他人添加,未验证:我也将文件cv2.pyd
复制到文件夹C:/Python27/Lib/site-packages/cv2
。有效。
same Eclipse项目中使用了不同版本的Python。我的设置与Project Properties和Run Configuration Python版本不一致。
在Project> Properties> PyDev
中,我将解释器设置为Python2.7.11。在运行配置>解释器
中,我正在使用默认解释器。将其更改为Python 2.7.11可解决此问题。