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

Windows系统pip安装Python包失败(Ninja/CMake相关报错)

解决Windows下安装numpy/scipy/matplotlib时Ninja构建失败的问题

问题描述

在Windows系统上安装numpy、scipy、matplotlib等Python库时反复报错,执行pip install numpy这类命令均失败。Python和pip已更新到最新版本,且已添加至系统PATH。尝试过重装Python、安装CMake、切换库的旧版本等方法都无效,报错核心是Ninja的wheel构建失败,与CMake相关。


安装numpy时的报错输出(中文翻译)

D:\python311>pip install numpy
正在收集 numpy
  使用缓存的 numpy-1.26.0.tar.gz (15.6 MB)
  安装构建依赖... 完成
  获取构建wheel的需求... 完成
  安装后端依赖... 错误
  error: subprocess-exited-with-error

  × 用于安装后端依赖的pip子进程未成功运行。
  │ 退出代码: 1
  ╰─> [32行输出]
      正在收集 ninja>=1.8.2
        使用缓存的 ninja-1.11.1.tar.gz (27 kB)
        安装构建依赖: 开始
        安装构建依赖: 完成,状态为'done'
        获取构建wheel的需求: 开始
        获取构建wheel的需求: 完成,状态为'done'
        准备元数据(pyproject.toml): 开始
        准备元数据(pyproject.toml): 完成,状态为'done'
      为收集到的包构建wheel: ninja
        为ninja构建wheel(pyproject.toml): 开始
        为ninja构建wheel(pyproject.toml): 完成,状态为'error'
        error: subprocess-exited-with-error

        为ninja构建wheel(pyproject.toml)未成功运行。
        退出代码: 1

        [9行输出]
        回溯(最近的调用最后):
          文件 "C:\Users\nishi\AppData\Local\Temp\pip-build-env-mrhvwz_r\overlay\lib\python3.10\site-packages\skbuild\setuptools_wrap.py", 第645行, 在setup中
            cmkr = cmaker.CMaker(cmake_executable)
          文件 "C:\Users\nishi\AppData\Local\Temp\pip-build-env-mrhvwz_r\overlay\lib\python3.10\site-packages\skbuild\cmaker.py", 第148行, 在__init__中
            self.cmake_version = get_cmake_version(self.cmake_executable)
          文件 "C:\Users\nishi\AppData\Local\Temp\pip-build-env-mrhvwz_r\overlay\lib\python3.10\site-packages\skbuild\cmaker.py", 第105行, 在get_cmake_version中
            raise SKBuildError(msg) from err

        CMake安装存在问题,终止构建。CMake可执行文件是cmake
        [输出结束]

        注意: 此错误源自子进程,大概率与pip无关。
        ERROR: 构建ninja的wheel失败
      构建ninja失败
      ERROR: 无法为ninja构建wheel,而这是安装基于pyproject.toml的项目所必需的
      [输出结束]

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

× 用于安装后端依赖的pip子进程未成功运行。
│ 退出代码: 1
╰─> 查看上面的输出。

注意: 此错误源自子进程,大概率与pip无关。

详细报错输出(pip install --verbose numpy中文翻译)

D:\python311>pip install --verbose numpy
使用来自 C:\msys64\mingw64\lib\python3.10\site-packages\pip 的 pip 23.2.1 (python 3.10)
正在收集 numpy
  使用缓存的 numpy-1.26.0.tar.gz (15.6 MB)
  运行命令 pip 子进程以安装构建依赖
  忽略 setuptools: 标记 'python_version >= "3.12"' 与你的环境不匹配
  正在收集 Cython<3.1,>=0.29.34
    从 https://files.pythonhosted.org/packages/03/e9/9cc0c4f0d8a566089d096254cd25168a0db02dd047863a7f995d8d3eefa7/Cython-3.0.2-py2.py3-none-any.whl.metadata 获取 Cython<3.1,>=0.29.34 的依赖信息
    使用缓存的 Cython-3.0.2-py2.py3-none-any.whl.metadata (3.1 kB)
  正在收集 pyproject-metadata>=0.7.1
    使用缓存的 pyproject_metadata-0.7.1-py3-none-any.whl (7.4 kB)
  正在收集 tomli>=1.0.0
    使用缓存的 tomli-2.0.1-py3-none-any.whl (12 kB)
  正在收集 colorama
    使用缓存的 colorama-0.4.6-py2.py3-none-any.whl (25 kB)
  正在收集 packaging>=19.0 (来自 pyproject-metadata>=0.7.1)
    使用缓存的 packaging-23.1-py3-none-any.whl (48 kB)
  使用缓存的 Cython-3.0.2-py2.py3-none-any.whl (1.2 MB)
  安装收集到的包: tomli, packaging, Cython, colorama, pyproject-metadata
  成功安装 Cython-3.0.2 colorama-0.4.6 packaging-23.1 pyproject-metadata-0.7.1 tomli-2.0.1
  安装构建依赖... 完成
  运行命令 获取构建wheel的需求
  获取构建wheel的需求... 完成
  运行命令 pip 子进程以安装后端依赖
  正在收集 ninja>=1.8.2
    使用缓存的 ninja-1.11.1.tar.gz (27 kB)
    安装构建依赖: 开始
    安装构建依赖: 完成,状态为'done'
    获取构建wheel的需求: 开始
    获取构建wheel的需求: 完成,状态为'done'
    准备元数据(pyproject.toml): 开始
    准备元数据(pyproject.toml): 完成,状态为'done'
  为收集到的包构建wheel: ninja
    为ninja构建wheel(pyproject.toml): 开始
    为ninja构建wheel(pyproject.toml): 完成,状态为'error'
    error: subprocess-exited-with-error

    为ninja构建wheel(pyproject.toml)未成功运行。
    退出代码: 1

    [9行输出]
    回溯(最近的调用最后):
      文件 "C:\Users\nishi\AppData\Local\Temp\pip-build-env-a04oa8_d\overlay\lib\python3.10\site-packages\skbuild\setuptools_wrap.py", 第645行, 在setup中
        cmkr = cmaker.CMaker(cmake_executable)
      文件 "C:\Users\nishi\AppData\Local\Temp\pip-build-env-a04oa8_d\overlay\lib\python3.10\site-packages\skbuild\cmaker.py", 第148行, 在__init__中
        self.cmake_version = get_cmake_version(self.cmake_executable)
      文件 "C:\Users\nishi\AppData\Local\Temp\pip-build-env-a04oa8_d\overlay\lib\python3.10\site-packages\skbuild\cmaker.py", 第105行, 在get_cmake_version中
        raise SKBuildError(msg) from err

    CMake安装存在问题,终止构建。CMake可执行文件是cmake
    [输出结束]

    注意: 此错误源自子进程,大概率与pip无关。
    ERROR: 构建ninja的wheel失败
  构建ninja失败
  ERROR: 无法为ninja构建wheel,而这是安装基于pyproject.toml的项目所必需的
  error: subprocess-exited-with-error

  × 用于安装后端依赖的pip子进程未成功运行。
  │ 退出代码: 1
  ╰─> 查看上面的输出。

  注意: 此错误源自子进程,大概率与pip无关。
  完整命令: 'C:\msys64\mingw64\bin\python.exe' 'C:\msys64\mingw64\lib\python3.10\site-packages\pip\__pip-runner__.py' install --ignore-installed --no-user --prefix 'C:\Users\nishi\AppData\Local\Temp\pip-build-env-ikxu5dzv\normal' --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'ninja >= 1.8.2'
  当前工作目录: [继承]
  安装后端依赖... 错误
error: subprocess-exited-with-error

× 用于安装后端依赖的pip子进程未成功运行。
│ 退出代码: 1
╰─> 查看上面的输出。

注意: 此错误源自子进程,大概率与pip无关。

解决方案

1. 确保CMake正确安装并添加到系统PATH

  • 下载对应Windows版本的CMake安装包,安装时勾选**"Add CMake to the system PATH for all users"或"Current user"**选项。
  • 安装完成后,打开新的命令提示符,执行cmake --version验证是否能正常输出版本信息。若提示找不到命令,手动将CMake的bin目录(如C:\Program Files\CMake\bin)添加到系统环境变量PATH中。

2. 手动预安装Ninja

  • 方法一:直接使用预编译二进制文件
    1. 下载Windows版本的Ninja压缩包(如ninja-win.zip)。
    2. 解压后将ninja.exe放到已在PATH中的目录(如Python的Scripts目录、C:\Windows\System32)。
    3. 验证:执行ninja --version,确认能正常输出版本。
  • 方法二:安装预编译wheel
    pip install ninja --only-binary :all:
    

3. 强制使用预编译的Python库wheel

科学计算库大多提供预编译的wheel包,无需本地构建。执行安装命令时添加参数强制下载预编译版本:

pip install numpy scipy matplotlib --only-binary :all:

4. 检查Python环境冲突

从报错路径看,当前使用的是MSYS2环境下的Python,可能与原生Windows Python冲突:

  • 卸载MSYS2中的Python,改用官方原生Windows Python。
  • 执行where python,确认输出的是官方Python路径(如C:\Python311\python.exe)。

5. 清理缓存后重新安装

  • 清理pip缓存:
    pip cache purge
    
  • 重新执行安装命令:
    pip install numpy scipy matplotlib --only-binary :all:
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:02:33