You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pip安装scikit-learn时遭遇构建依赖错误求助

安装scikit-learn时Fortran编译器缺失错误的解决方案

环境信息

  • Python版本:3.8.5
  • pip版本:22.3

核心问题

执行pip install scikit-learn时,pip尝试从源码编译依赖包scipy,但系统中未安装Fortran编译器(如gfortran、ifort等),导致Meson构建系统无法完成编译流程。

解决方案

方法1:使用预编译二进制包(优先推荐)

直接安装预编译好的包,跳过源码编译步骤:

pip install scikit-learn --only-binary :all:

如果有conda环境,也可以用conda安装:

conda install scikit-learn

方法2:安装Fortran编译器(需源码编译时使用)

  1. 下载包含gfortran的MinGW-w64安装包
  2. 安装时将gfortran添加到系统环境变量PATH中
  3. 重启命令行,执行gfortran --version验证编译器是否正常识别
  4. 重新运行pip install scikit-learn

完整报错信息(中文翻译)

正在收集scikit-learn
  使用缓存的scikit-learn-1.1.3.tar.gz (7.0 MB)
  安装构建依赖项... 错误
  error: subprocess-exited-with-error

  × 用于安装构建依赖项的pip子进程未成功运行。
  │ 退出码: 1
  ╰─> [96行输出]

  忽略numpy: 标记'python_version == "3.10" and platform_system == "Windows" and platform_python_implementation != "PyPy"'与当前环境不匹配
      正在收集setuptools<60.0
        使用缓存的setuptools-59.8.0-py3-none-any.whl (952 kB)
      正在收集wheel
        使用缓存的wheel-0.37.1-py2.py3-none-any.whl (35 kB)
      正在收集Cython>=0.28.5
        使用缓存的Cython-0.29.32-py2.py3-none-any.whl (986 kB)
      正在收集oldest-supported-numpy
        使用缓存的oldest_supported_numpy-2022.8.16-py3-none-any.whl (3.9 kB)
      正在收集scipy>=1.3.2
        使用缓存的scipy-1.9.3.tar.gz (42.1 MB)
        安装构建依赖项: 已启动
        安装构建依赖项: 完成,状态为'done'
        获取构建wheel的依赖项: 已启动
        获取构建wheel的依赖项: 完成,状态为'error'
        error: subprocess-exited-with-error

        获取构建wheel的依赖项未成功运行。
        退出码: 1

        [64行输出]
        Meson构建系统
        版本: 0.63.3
        源目录: C:\\Users\\manju\\AppData\\Local\\Temp\\pip-install-1t0wentg\\scipy_8ed1046c49a04dd98aabab84e6319b67
        构建目录: C:\\Users\\manju\\AppData\\Local\\Temp\\pip-install-1t0wentg\\scipy_8ed1046c49a04dd98aabab84e6319b67\\.mesonpy-nddxhmy3\\build
        构建类型: 原生构建
        项目名称: SciPy
        项目版本: 1.9.3
        主机机器的C编译器: gcc (gcc 9.2.0 "gcc (MinGW.org GCC Build-2) 9.2.0")
        主机机器的C链接器: gcc ld.bfd 2.32
        主机机器的C++编译器: c++ (gcc 9.2.0 "c++ (MinGW.org GCC Build-2) 9.2.0")
        主机机器的C++链接器: c++ ld.bfd 2.32
        主机机器CPU系列: x86
        主机机器CPU: x86
        C编译器支持参数-Wno-unused-but-set-variable: 是
        C编译器支持参数-Wno-unused-but-set-variable: 是(已缓存)
        C编译器支持参数-Wno-unused-function: 是
        C编译器支持参数-Wno-conversion: 是
        C编译器支持参数-Wno-misleading-indentation: 是
        C编译器支持参数-Wno-incompatible-pointer-types: 是
        库m已找到: 是

        ..\\..\\meson.build:57:0: 错误: 未知编译器: [['ifort'], ['gfortran'], ['flang'], ['pgfortran'], ['g95']]
        遇到以下异常:
        执行`ifort --version`返回"[WinError 2] 系统找不到指定的文件"
        执行`ifort -V`返回"[WinError 2] 系统找不到指定的文件"
        执行`gfortran --version`返回"[WinError 2] 系统找不到指定的文件"
        执行`gfortran -V`返回"[WinError 2] 系统找不到指定的文件"
        执行`flang --version`返回"[WinError 2] 系统找不到指定的文件"
        执行`flang -V`返回"[WinError 2] 系统找不到指定的文件"
        执行`pgfortran --version`返回"[WinError 2] 系统找不到指定的文件"
        执行`pgfortran -V`返回"[WinError 2] 系统找不到指定的文件"
        执行`g95 --version`返回"[WinError 2] 系统找不到指定的文件"
        执行`g95 -V`返回"[WinError 2] 系统找不到指定的文件"

        完整日志可在C:\\Users\\manju\\AppData\\Local\\Temp\\pip-install-1t0wentg\\scipy_8ed1046c49a04dd98aabab84e6319b67\\.mesonpy-nddxhmy3\\build\\meson-logs\\meson-log.txt查看
        + meson setup --native-file=C:\\Users\\manju\\AppData\\Local\\Temp\\pip-install-1t0wentg\\scipy_8ed1046c49a04dd98aabab84e6319b67\\.mesonpy-native-file.ini -Ddebug=false -Doptimization=2 --prefix=c:\\users\\manju\\appdata\\local\\programs\\python\\python38-32 C:\\Users\\manju\\AppData\\Local\\Temp\\pip-install-1t0wentg\\scipy_8ed1046c49a04dd98aabab84e6319b67 C:\\Users\\manju\\AppData\\Local\\Temp\\pip-install-1t0wentg\\scipy_8ed1046c49a04dd98aabab84e6319b67\\.mesonpy-nddxhmy3\\build
        回溯(最近的调用最后):
          文件"C:\\Users\\manju\\AppData\\Local\\Programs\\Python\\Python38-32\\Lib\\site-packages\\pip\\_vendor\\pep517\\in_process\\_in_process.py", 第351行, in <module>
            main()
          文件"C:\\Users\\manju\\AppData\\Local\\Programs\\Python\\Python38-32\\Lib\\site-packages\\pip\\_vendor\\pep517\\in_process\\_in_process.py", 第333行, in main
            json_out['return_val'] = hook(**hook_input['kwargs'])
          文件"C:\\Users\\manju\\AppData\\Local\\Programs\\Python\\Python38-32\\Lib\\site-packages\\pip\\_vendor\\pep517\\in_process\\_in_process.py", 第118行, in get_requires_for_build_wheel
            return hook(config_settings)
          文件"C:\\Users\\manju\\AppData\\Local\\Temp\\pip-build-env-8ril8k9h\\overlay\\Lib\\site-packages\\mesonpy\\__init__.py", 第969行, in get_requires_for_build_wheel
            with _project(config_settings) as project:
          文件"c:\\users\\manju\\appdata\\local\\programs\\python\\python38-32\\lib\\contextlib.py", 第113行, in __enter__
            return next(self.gen)
          文件"C:\\Users\\manju\\AppData\\Local\\Temp\\pip-build-env-8ril8k9h\\overlay\\Lib\\site-packages\\mesonpy\\__init__.py", 第948行, in _project
            with Project.with_temp_working_dir(
          文件"c:\\users\\manju\\appdata\\local\\programs\\python\\python38-32\\lib\\contextlib.py", 第113行, in __enter__
            return next(self.gen)
          文件"C:\\Users\\manju\\AppData\\Local\\Temp\\pip-build-env-8ril8k9h\\overlay\\Lib\\site-packages\\mesonpy\\__init__.py", 第777行, in with_temp_working_dir
            yield cls(source_dir, tmpdir, build_dir)
          文件"C:\\Users\\manju\\AppData\\Local\\Temp\\pip-build-env-8ril8k9h\\overlay\\Lib\\site-packages\\mesonpy\\__init__.py", 第682行, in __init__
            self._configure(reconfigure=bool(build_dir) and not native_file_mismatch)
          文件"C:\\Users\\manju\\AppData\\Local\\Temp\\pip-build-env-8ril8k9h\\overlay\\Lib\\site-packages\\mesonpy\\__init__.py", 第713行, in _configure
            self._meson(
          文件"C:\\Users\\manju\\AppData\\Local\\Temp\\pip-build-env-8ril8k9h\\overlay\\Lib\\site-packages\\mesonpy\\__init__.py", 第696行, in _meson
            return self._proc('meson', *args)
          文件"C:\\Users\\manju\\AppData\\Local\\Temp\\pip-build-env-8ril8k9h\\overlay\\Lib\\site-packages\\mesonpy\\__init__.py", 第691行, in _proc
            subprocess.check_call(list(args))
          文件"c:\\users\\manju\\appdata\\local\\programs\\python\\python38-32\\lib\\subprocess.py", 第364行, in check_call
            raise CalledProcessError(retcode, cmd)
        subprocess.CalledProcessError: 命令'['meson', 'setup', '--native-file=C:\\\\Users\\\\manju\\\\AppData\\\\Local\\\\Temp\\\\pip-install-1t0wentg\\\\scipy_8ed1046c49a04dd98aabab84e6319b67\\\\.mesonpy-native-file.ini', '-Ddebug=false', '-Doptimization=2', '--prefix=c:\\\\users\\\\manju\\\\appdata\\\\local\\\\programs\\\\python\\\\python38-32', 'C:\\\\Users\\\\manju\\\\AppData\\\\Local\\\\Temp\\\\pip-install-1t0wentg\\\\scipy_8ed1046c49a04dd98aabab84e6319b67', 'C:\\\\Users\\\\manju\\\\AppData\\\\Local\\\\Temp\\\\pip-install-1t0wentg\\\\scipy_8ed1046c49a04dd98aabab84e6319b67\\\\.mesonpy-nddxhmy3\\\\build']'返回非零退出状态1。
        [输出结束]

        注意: 此错误源自子进程,可能与pip无关。
      error: subprocess-exited-with-error

      获取构建wheel的依赖项未成功运行。
      退出码: 1

      查看上方输出。

      注意: 此错误源自子进程,可能与pip无关。
      [输出结束]

  注意: 此错误源自子进程,可能与pip无关。
error: subprocess-exited-with-error

× 用于安装构建依赖项的pip子进程未成功运行。
│ 退出码: 1
╰─> 查看上方输出。

注意: 此错误源自子进程,可能与pip无关。

内容的提问来源于stack exchange,提问作者chandrika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:50:37