我有一个情况非常像那个在导入错误: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.pyd
在C:\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:
我有同样的问题。 这是我做的:
我从下载pywin32轮的文件在这里 ,然后
我卸载pywin32模块。 要卸载执行在命令提示符下键入以下命令。
pip uninstall pywin32
于是,我重新安装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/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
Answer 12:
您可以安装opencv
来自官方或非官方网站。
请参考这个问题, 这个如果你正在使用的问题Anaconda
。
Answer 13:
- 请确保你已经安装了Python 2.7.12或以下版本,否则你一定会得到这个错误。
- 在64位安装确保Oracle客户端,如果操作系统是64位。
- 确保微软的Visual C ++编译器Python 2.7版是64对64位操作系统位或32位的32位。 注: - 如果UR OS是64位的安装64位的所有包,或者如果OS是32位的安装32位包。
Answer 14:
它有一个非常简单的解决方案。 安装完成后opencv
地方
cv2.pyd
从C:\opencv\build\python\2.7\ **x64**
到C:\Python27\Lib\site-packages
而不是,地方cv2.pyd
从C:\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