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

如何修改Windows默认Python版本并解决NumPy安装时找不到Python.h的问题

如何修改Windows默认Python版本并解决NumPy安装时找不到Python.h的问题

看起来你碰到了两个关联的小麻烦:一是Windows里默认Python版本死活切换不到3.13,二是NumPy安装时卡壳在找不到Python.h头文件上。我来一步步帮你拆解解决~

一、先搞定默认Python版本的切换问题

从你的错误日志能看出来,当前pip调用的是MSYS2自带的Python(C:\msys64\ucrt64\bin\python.exe),而不是你安装的Python 3.13。这是关键!得分两种场景处理:

1. 普通CMD/PowerShell里的版本切换

  • 先检查PATH的实际优先级:打开CMD输入以下命令,查看路径顺序:
    echo %PATH%
    
    看看你Python3.13的安装目录(比如C:\Users\你的用户名\AppData\Local\Programs\Python\Python313\)和Scripts目录是不是排在MSYS2路径或者旧Python路径的前面。
  • 手动调整环境变量:
    右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量的PATH里:
    • 找到Python3.13的两个目录(主目录和Scripts目录),把它们移到列表最顶部;
    • 同时可以把MSYS2的Python路径暂时移到后面,或者直接去掉(如果不需要在CMD里用MSYS2的Python);
    • 保存设置后重启CMD,再输入python --version和pip --version确认是不是已经切换到3.13了。

2. 如果是在MSYS2终端里操作

MSYS2会优先使用自己生态里的软件,所以你如果是在MSYS2的终端(比如ucrt64的终端)里运行pip,它会自动调用MSYS2自带的Python。这时候有两个选择:

  • 要么在MSYS2里安装Python3.13:打开MSYS2终端,输入pacman -S mingw-w64-ucrt-x86_64-python3.13,安装完成后终端里的Python就会切换到3.13;
  • 要么退出MSYS2终端,用普通CMD/PowerShell运行pip,确保调用的是你手动安装的Python3.13。

二、解决Python.h找不到的问题

其实不用非要换Python3.13,不管是3.11还是3.13,只要安装了Python的开发组件,Python.h就会存在。你的3.11找不到,大概率是当初安装时没勾选开发相关的选项:

1. 针对已安装的Python(3.11或3.13)

  • 找到对应Python版本的安装程序(比如python-3.11.7-amd64.exe或python-3.13.0-amd64.exe),双击运行;
  • 选择「Modify」(修改)选项;
  • 在可选功能里,一定要勾选「Python development」(Python开发)、「Include headers」(包含头文件)这类选项,确保所有和开发相关的组件都被选中;
  • 点击「Install」完成修改,之后Python.h就会出现在Python安装目录的Include文件夹里了。

2. 更省心的方案:用MSYS2包管理器装NumPy

如果你是在MSYS2环境下开发,直接用MSYS2的包管理器装NumPy,它会自动处理所有依赖(包括Python头文件):

pacman -S mingw-w64-ucrt-x86_64-python-numpy

这样安装的NumPy是专门适配MSYS2环境的,不会出现头文件找不到的问题。

最后验证

等你把版本切换好,并且确保Python安装了开发组件后,再运行pip install numpy,应该就能顺利通过了~

备注:内容来源于stack exchange,提问作者Helikopter Bojowy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 08:24:49