【问题标题】:ImportError: DLL load failed: %1 is not a valid Win32 application - scikit-learn+ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序 - scikit-learn+
【发布时间】:2026-02-12 06:20:07
【问题描述】:

我在导入 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。欢迎任何其他建议。

标签: windows python-2.7 matplotlib scikit-learn scipy


【解决方案1】:

我能够修复它。

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

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

pip install --upgrade --force-reinstall scipy

【讨论】: