导入错误:DLL加载失败:%1不是有效的Win32应用程序。 但DLL的在那里 导入错误:DLL

2019-05-08 19:53发布

我有一个情况非常像那个在导入错误:DLL加载失败:%1不是有效的Win32应用程序 ,但得到的答复有没有为我工作。

我的Python代码表示:

import cv2

但该行抛出这个问题的标题所示的错误。

我安装了OpenCV中C:\lib\opencv这64位计算机上。 我使用的是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

在该解决方案导入错误:DLL加载失败:%1不是有效的Win32应用程序说,加上“新OpenCV的二进制文件的路径( C:\opencv\build\bin\Release )到Windows PATH环境变量”。 但是,如上图所示,我已经有OpenCV的二进制文件的文件夹( C:\lib\opencv\build\x64\vc11\bin )在我的道路。 而我的OpenCV的安装没有任何版本的文件夹(除下构建/ java的空单)。

任何想法,以什么错? 我可以告诉Python来详细跟踪加载过程? 究竟是什么DLL的是找?

谢谢,拉尔斯

编辑:

我只注意到,根据http://www.dependencywalker.com/的cv2.pydC:\lib\opencv\build\python\2.7是32位的,而机器和Python的我跑是64位。 莫非是这个问题? 如果是这样,我在哪里可以找到cv2.pyd的64位版本?

Answer 1:

非官方的Windows可执行文件的Python扩展包

你可以找到这里的任何蟒蛇库



Answer 2:

请检查您是否正在使用Python版本也是64位。 如果没有,那么这可能是问题。 你会使用一个32位Python版本,并将已经安装了OpenCV库一个64位二进制文​​件。



Answer 3:

哇,我还没有发现这个问题的另一种情况。 以上都不工作。 最后,我用Python的自省正在加载有什么本事。 对于Python 2.7,这意味着:

import imp
imp.find_module("cv2")

事实证明这一个完全出乎意料“cv2.pyd”文件不是由多个卸载感动蟒蛇DLL目录/安装的尝试。 由于Python是第一,不看有发现我的好安装。 我删除cv2.pyd文件,并试图再次imp.find_module(“CV2”)和Python立即找到了正确的文件和CV2开始工作。

因此,如果没有其他的解决方案,为你工作,确保你使用Python自省,看看有什么文件蟒蛇试图加载。



Answer 4:

就我而言,我有64位的蟒蛇,这是LXML这是一种错误的版本 - 我应该一直在使用的是x64版本也是如此。 我解决了这个点击这里下载LXML的64位版本:

https://pypi.python.org/pypi/lxml/3.4.1

lxml-3.4.1.win-amd64-py2.7.exe

这是最简单的答案令人沮丧的问题。



Answer 5:

我只是有这个问题,事实证明这只是因为我用OpenCV的文件的x 64版本的。 试图在x86和它的工作。



Answer 6:

如果您的构建系统(CMake的在我的情况),从复制文件<name>.dll<name>.pyd ,你会如果原始文件本来就不是一个dll得到这个错误。 在我的情况下,构建共享库得到关闭,所以底层的文件实际上是一个*.lib

我通过加载发现这个错误pyd文件DependencyWalker ,并发现它是无效的。



Answer 7:

我有同样的问题。 这是我做的:

  1. 我从下载pywin32轮的文件在这里 ,然后

  2. 我卸载pywin32模块。 要卸载执行在命令提示符下键入以下命令。

    pip uninstall pywin32

  3. 于是,我重新安装pywin32。 要安装它,在pywin32轮文件位于同一目录中打开命令提示符。 然后执行以下命令。

    pip install <Name of the wheel file with extension>轮文件会像:piwin32-XXX-cpXX-NONE-win32.whl

它solvs这个问题对我来说。 你可能也想试一试。 希望它能为你工作为好。



Answer 8:

我复制cv2.pyd文件从/opencv/build/python/2.7/x86文件夹,而不是从/x64文件夹复制到C:/Python27/Lib/site-packeges 。 我跟着的提供的说明其余这里 。

由其他人补充说,未经过验证:我也复制文件cv2.pyd到文件夹C:/Python27/Lib/site-packages/cv2 。 有用。



Answer 9:

对我来说,问题是,我是使用相同的 Eclipse项目的不同版本的Python。 我的设置不符合项目属性运行配置 Python版本一致。

项目>属性> PyDev的 ,我有解释设置为Python2.7.11。

运行配置>解释 ,我用的是默认的解释。 它改变到Python 2.7.11解决了这一问题。



Answer 10:

我面临着同样的问题,当我卸载,并使用32位Windows安装程序重新安装一个不同版本的Python 2.7.x的我的系统上。 我得到了我大部分的import语句的同样的错误。 我卸载了新安装Python和下载64位Windows安装程序,并重新安装一次Python和它的工作。 希望这可以帮助你。



Answer 11:

首先我复制cv2.pyd/opencv/build/python/2.7/x86C:/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


Answer 12:

您可以安装opencv来自官方或非官方网站。

请参考这个问题, 这个如果你正在使用的问题Anaconda



Answer 13:

  1. 请确保你已经安装了Python 2.7.12或以下版本,否则你一定会得到这个错误。
  2. 在64位安装确保Oracle客户端,如果操作系统是64位。
  3. 确保微软的Visual C ++编译器Python 2.7版是64对64位操作系统位或32位的32位。 注: - 如果UR OS是64位的安装64位的所有包,或者如果OS是32位的安装32位包。


Answer 14:

它有一个非常简单的解决方案。 安装完成后opencv地方

cv2.pydC:\opencv\build\python\2.7\ **x64**C:\Python27\Lib\site-packages

而不是,地方cv2.pydC:\opencv\build\python\2.7\ **x86**C:\Python27\Lib\site-packages



Answer 15:

我找到了解决办法,也许你可以尝试使用cmd窗口,而不是蟒蛇提示窗口中启动你先scrapy测试。



文章来源: ImportError: DLL load failed: %1 is not a valid Win32 application. But the DLL's are there