[英]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.