ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序 - scikit-learn+

Posted

技术标签:

【中文标题】ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序 - scikit-learn+【英文标题】:ImportError: DLL load failed: %1 is not a valid Win32 application - scikit-learn+ 【发布时间】:2020-08-22 01:04:33 【问题描述】:

我在导入 scikit-learn、matplotlib 和 scipy 时遇到上述错误(numpy 工作正常)。

我已经安装了 python 2.7 64 (C:\Python27)。

我最近在一个新的克隆驱动器上安装了 win10 64 位。 我浏览了类似帖子的建议:

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

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

ImportError: DLL load failed: %1 is not a valid Win32 application for Python Matplotlib

我重新安装了车轮版本的软件包。

http://www.lfd.uci.edu/~gohlke/pythonlibs/

我将目录添加到路径,将 PythonPath 添加到系统。

还是报错。

感谢您的建议,我被困住了。

谢谢

【问题讨论】:

%1 来自哪里?可能来自您的脚本......看起来格式化函数调用失败,或者更确切地说格式化根本不是圆顶...... @MichaëlRoy,“%1”是系统错误ERROR_BAD_EXE_FORMAT 的错误消息中的插入。 Python 对 OS 错误的通用处理调用带有标志 FORMAT_MESSAGE_IGNORE_INSERTSFormatMessage,它遵循“从 API 返回任意系统错误代码并在没有 FORMAT_MESSAGE_IGNORE_INSERTS 的情况下使用 FORMAT_MESSAGE_FROM_SYSTEM 是不安全的”。 在 Python 3 中,冒号前的错误消息已改进为包含失败的扩展模块:“导入 时 DLL 加载失败”。但是,知道“”通常并没有帮助。通常问题出在扩展模块所依赖的 DLL 上。要发现不匹配的文件,您需要通过 Sysinternals Process Monitor 监控文件访问,或附加调试器并启用加载程序快照以查找加载失败的 DLL。 @ErykSun,感谢您抽出宝贵时间回答。我运行了 Sysinternals 进程监视器。我正在弄清楚如何找到无法加载的 DLL。欢迎任何其他建议。 【参考方案1】:

我能够修复它。

要走的路是“强制重新安装”。

这足以让 scikit-learn 启动并运行。

pip install --upgrade --force-reinstall scipy

【讨论】:

以上是关于ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序 - scikit-learn+的主要内容,如果未能解决你的问题,请参考以下文章

ImportError: DLL 加载失败: %1 不是有效的 Win32 应用程序

Windows上的Tensorflow - ImportError:DLL加载失败:找不到指定的模块

pyodbc - ImportError:DLL 加载失败:

ImportError:DLL 加载失败:找不到指定的过程。 (导入sklearn)

ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序 - scikit-learn+

ImportError:导入 _remap 时 DLL 加载失败