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

2025-01-08 08:50:00
admin
原创
187
摘要:问题描述:我遇到的情况非常类似于错误“ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序”的情况,但是那里的答案对我来说不起作用。我的 Python 代码显示:import cv2 但是该行引发了该问题标题中显示的错误。C:libopencv我在这台 64 位机器上安装了 Ope...

问题描述:

我遇到的情况非常类似于错误“ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序”的情况,但是那里的答案对我来说不起作用。

我的 Python 代码显示:

import cv2

但是该行引发了该问题标题中显示的错误。

C:libopencv我在这台 64 位机器上安装了 OpenCV 。我使用的是 64 位 Python。

我的 PYTHONPATH 变量:PYTHONPATH=C:libopencvuildpython.7。此文件夹包含cv2.pyd,仅此而已。

我的 PATH 变量:Path=%OPENCV_DIR%in;...此文件夹包含 39 个 DLL 文件,例如opencv_core246d.dll

OPENCV_DIR 具有此值:OPENCV_DIR=C:libopencvuildx64 c11

错误“ImportError: DLL 加载失败: %1 不是有效的 Win32 应用程序”的解决方案要求将“新的 opencv 二进制文件路径 ( C:opencvuildinRelease) 添加到 Windows PATH 环境变量”。但如上所示,C:libopencvuildx64 c11in我的 PATH 中已经有 OpenCV 二进制文件文件夹 ( )。而且我的 OpenCV 安装没有任何 Release 文件夹(除了build/java下的一个空文件夹)。

出了什么问题?我可以让 Python 详细跟踪加载过程吗?它到底在寻找什么 DLL 文件?

我注意到,根据http://www.dependencywalker.com/cv2.pydinC:libopencvuildpython.7是 32 位的,而我正在运行的机器和 Python 是 64 位的。这可能是问题所在吗?如果是这样,我在哪里可以找到 64 位版本的 cv2.pyd?


解决方案 1:

Python 扩展包的非官方 Windows 二进制文件

您可以从这里找到任何 Python 库。

解决方案 2:

请检查您使用的 Python 版本是否也是 64 位。如果不是,那么问题可能就出在这里。您将使用 32 位 Python 版本,并为 OpenCV 库安装 64 位二进制文​​件。

解决方案 3:

哇,我又发现了这个问题的另一个案例。以上方法都不起作用。最后我使用了 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 正在尝试加载什么文件。

解决方案 4:

就我而言,我使用的是 64 位 Python,而lxml版本不对——我也应该使用 x64 版本。我通过在此处下载 64 位版本的 lxml 解决了这个问题:

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

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

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

解决方案 5:

我刚刚遇到了这个问题。原来这是因为我使用的是 64 位版本的 OpenCV 文件。我尝试了 x86,成功了。

解决方案 6:

我也遇到了同样的问题。以下是我所做的:

  1. 我从这里下载了 pywin32 wheel 文件,然后

  2. 我卸载了pywin32模块。要卸载,请在命令提示符中执行以下命令。

pip uninstall pywin32

  1. 然后,我重新安装了pywin32。要安装它,请在 pywin32 wheel 文件所在的同一目录中打开命令提示符。然后执行以下命令。

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

它帮我解决了这个问题。

解决方案 7:

我将cv2.pyd文件从/opencv/build/python/2.7/x86文件夹复制到 ,而不是从/x64文件夹复制到。我遵循了此处C:/Python27/Lib/site-packeges提供的其余说明。

由其他人添加,未经验证:我也将文件复制cv2.pyd到文件夹C:/Python27/Lib/site-packages/cv2。它有效。

解决方案 8:

对我来说,问题在于我在同一个Eclipse 项目中使用了不同版本的 Python。我的设置与项目属性运行配置Python 版本不一致。

在菜单项目属性PyDev中,我将解释器设置为 Python 2.7.11。

在运行配置解释器中,我使用的是默认解释器。将其更改为 Python 2.7.11 解决了该问题。

解决方案 9:

如果您的构建系统(我的情况是CMake)将文件从 复制<name>.dll<name>.pyd,如果原始文件实际上不是 DLL 文件,您将收到此错误。 在我的情况下,构建共享库已被关闭,因此底层文件实际上是*.lib

我在Dependency Walkerpyd中加载文件时发现了这个错误,并发现它无效。

解决方案 10:

更新 NumPy。

pip install numpy --upgrade

它对我有用!

解决方案 11:

这个对我有用:

pip install -- pywin32==227

解决方案 12:

当我使用 32 位 Windows 安装程序在系统上卸载并重新安装不同版本的 Python 2.7.x 时,我遇到了同样的问题。我在大多数导入语句上都遇到了同样的错误。

我卸载了新安装的 Python,下载了一个 64 位 Windows 安装程序,再次重新安装了 Python,就可以了。

解决方案 13:

因此,我在 Windows 下安装 vtk 时遇到了问题(因为我使用的是 Python 3.7,所以到目前为止还没有可用的二进制文件。旧版本的 Pythonpip install vtk不起作用)

我确实在cmd中写了Python:

Python 3.7.3 on win32

所以我现在知道我在 32 位上运行了 Python 3.7.3。

然后我在VTK‑8.2.0‑cp37‑cp37m‑win32.whl下载了正确的轮子

接下来我安装了轮子:

pip install VTK-8.2.0-cp37-cp37m-win32.whl

然后我测试了一下并且它有效:

python
import vtk

解决方案 14:

我在尝试编写有关语音转文本的代码时遇到了同样的问题。

解决办法很简单,使用pip方法卸载之前的pywin32:

pip uninstall pywin32

上述操作将删除现有的,默认情况下适用于 32 位计算机。然后使用

pip install pywin32

这将为您正在使用的 64 位计算机安装一个。

解决方案 15:

我在尝试运行 uvicorn 时遇到了类似的问题,

创建一个新的虚拟环境并重新安装 python 包成功了

解决方案 16:

我尝试逐步检查代码并在初始化过程中取消后收到此错误。将文件移动到另一个文件夹然后再移回后,此错误消失。我不知道为什么。

解决方案 17:

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

如果您正在使用,请参考这个问题和这个Anaconda问题。

解决方案 18:

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

cv2.pydC:opencvuildpython.7 **x64**C:Python27Libsite-packages

而不是,cv2.pydC:opencvuildpython.7 **x86**C:Python27Libsite-packages

解决方案 19:

尝试导入 MySQLdb 时出现此错误。

对我有用的方法是卸载 Python,然后重新安装它。

安装 npm ( https://www.npmjs.com/get-npm )后,我收到错误。它所做的一件事就是安装 Python,尽管我已经安装了它。

解决方案 20:

首先我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.exeOpenCV并且它运行正常。

>>> import cv2
>>> print cv2.__version__
2.4.13

解决方案 21:

  1. 请确保您安装了 Python 2.7.12 或以下版本。否则您肯定会收到此错误。

  2. 如果操作系统是 64 位,请确保安装的 Oracle 客户端也是 64 位。

  3. 确保 Python 2.7 的 Microsoft Visual C++ 编译器对于 64 位操作系统是 64 位的,对于 32 位操作系统是 32 位的。

注意:如果您的操作系统是 64 位,请安装所有 64 位软件包,或者如果操作系统是 32 位,请安装 32 位软件包。

解决方案 22:

这对我来说很有效。我尝试过不同的方法,但这是我最好的解决方案。

打开命令提示符并输入以下内容;

pip install opencv-python

(请确保您的互联网连接已打开。)

此后,尝试再次导入。

解决方案 23:

您的Anaconda版本可能是 32 位,但它应该是 64 位。

解决方案 24:

如果你正在使用pycharm,我会进入设置 -> Python 解释,然后单击 + 按钮,在 Python 包列表中搜索名称,
当你想安装某些东西时,会显示要去哪里的图像

解决方案 25:

我找到了解决方案。也许您可以尝试使用 cmd 窗口而不是Anaconda提示窗口来启动您的第一个Scrapy测试。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1572  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1355  
  信创产品在政府采购中的占比分析随着信息技术的飞速发展以及国家对信息安全重视程度的不断提高,信创产业应运而生并迅速崛起。信创,即信息技术应用创新,旨在实现信息技术领域的自主可控,减少对国外技术的依赖,保障国家信息安全。政府采购作为推动信创产业发展的重要力量,其对信创产品的采购占比情况备受关注。这不仅关系到信创产业的发展前...
信创和国产化的区别   0  
  信创,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,摆脱对国外技术的依赖。近年来,国货国用信创发展势头迅猛,在诸多领域取得了显著成果。这一发展趋势对科技创新产生了深远的推动作用,不仅提升了我国在信息技术领域的自主创新能力,还为经济社会的数字化转型提供了坚实支撑。信创推动核心技术突破信创产业的发展促使企业和科研...
信创工作   0  
  信创技术,即信息技术应用创新产业,旨在实现信息技术领域的自主可控与安全可靠。近年来,信创技术发展迅猛,对中小企业产生了深远的影响,带来了诸多不可忽视的价值。在数字化转型的浪潮中,中小企业面临着激烈的市场竞争和复杂多变的环境,信创技术的出现为它们提供了新的发展机遇和支撑。信创技术对中小企业的影响技术架构变革信创技术促使中...
信创国产化   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用