繁体   English   中英

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

[英]ImportError: DLL load failed: %1 is not a valid Win32 application

我有这个问题,我尝试在 python 上导入 cv2 并收到以下错误消息。

>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: %1 is not a valid Win32 application.

我确实理解有很多关于此的帖子,其中建议包的位数与 python 包不同。

但是,我运行的所有内容都是 64 位。 我在win7 64位上,我有winpython 2.7.3.3,64位发行版,我用这里提供的指令编译了64位opencv,并将cv2.pyd dll放在python的Lib/site-packages文件夹中。

不幸的是,使用 32 位版本的 python 的建议不再适合我,因为我必须处理对于 32 位来说太大的 numpy 数组。

谢谢!!!

- - - 更新

唯一缺少的是将新的opencv二进制文件路径(C:\\opencv\\build\\bin\\Release)添加到Windows PATH环境变量中,重启python。

现在一切似乎都运行良好!

由于对 Win32 的引用,ImportError 消息有点误导,而问题只是未找到 opencv DLL。

这个问题是通过将 opencv 二进制文件的路径添加到 Windows PATH 环境变量来解决的(例如,在我的电脑上,这个路径是:C:\\opencv\\build\\bin\\Release)。

您可以尝试安装 32 位版本的 opencv

我刚刚遇到了这个问题,问题是该软件包曾一度安装在每个用户的软件包目录中。 (在 Windows 上。)又名 %AppData%\\Python。 所以 Python 首先在那里寻找,找到一个旧的 32 位版本的 .pyd 文件,并因列出的错误而失败。 不幸的是 pip uninstall 本身并不足以清除它,此时 pip 10.0.1 似乎没有用于卸载的 --user 参数,仅用于安装。

tl;dr 从 %AppData%\\python\\python27\\site-packages 中删除旧的 .pyd 为我解决了这个问题。

或者你必须为win 64bit重建cv2模块。

您所要做的就是将 cv2.pyd 文件从 x86 文件夹(例如C:\\opencv\\build\\python\\2.7\\x86\\复制C:\\Python27\\Lib\\site-packages\\ ,而不是从 x64文件夹。

希望能帮到你。

当 python 版本混合时,也会出现此错误:

例如,如果要加载的任何 DLL 是使用 python 2.7.16 编译的,并且您尝试使用 python 2.7.15 导入,则会出现此错误ImportError: DLL load failed: %1 is not a valid Win32 application. 被抛出。

这至少是我在我的案例中发现的问题。

当我遇到此错误时,它在我的计算机崩溃并重新启动后消失了。 尝试关闭并重新打开您的 IDE,如果这不起作用,请尝试重新启动计算机。 当我收到此错误时,我刚刚安装了库而没有重新启动 pycharm。

从来没有先关闭 PyCharm 进行测试,因为我的电脑一直在随机崩溃......正在处理那个,但它至少解决了这个问题......小胜利......:)。

我正在发布此答案,以防万一有人仍在寻找

我遇到了与上面提到的相同的错误,但仅在我使用pyinstaller时发生

我在我的诗歌 venv 中做了以下事情

poetry run python -m pip install pypiwin32

它对我有用。 我在用

python                            3.8.10
pyinstaller                       4.7
# Those are the versions that worked for me
pypiwin32                         223
pywin32                           303
pywin32-ctypes                    0.2.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM