Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

3.14: Windows on Arm build fails since windows-11-arm migrated to windows-11-vs2026-arm

未关闭 适合新手
#158,244 6 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@chris-eibl 已经在做这个了。

开始于 2026年9月27日。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
github-actions, python

调研方向

从 .github/workflows/reusable-windows.yml 开始,检查 arm64 作业如何选择 MSBuild;然后查看 build.bat 和 PCbuild/pcbuild.proj,了解 PreferredToolArchitecture 与 PlatformToolset 之间的交互。运行受影响的 Windows Arm64 CI 构建,并确认 _freeze_module 使用原生工具链成功编译。

由索引模型根据 Issue 内容生成。

描述

3.14 build infra OS-windows

The Windows Arm64 jobs in the CI recently started failing on 3.14 (for example). Noted by @StanFromIreland in https://github.com/python/cpython/pull/158188#issuecomment-5837953982: the _freeze_module
https://github.com/python/cpython/blob/9def455ebd4017dfbfcf1377137bb949ff2e29c1/PCbuild/pcbuild.proj#L20-L21
can no longer be compiled for PreferredToolArchitecture=x86 and PlatformToolset=v143:

The build tools for Visual Studio 2022 (Platform Toolset = 'v143') cannot be found.

PreferredToolArchitecture=x86 is chosen, because we use the x86 version of msbuild in CI:

"C:\Program Files\Microsoft Visual Studio\18\Enterprise\MSBuild\Current\Bin\msbuild.exe"

which is chosen by build.bat if no MSBUILD environment variable is set and msbuild is not in the path. [^1]

Compiling the _freeze_module for arm64 on an arm64 host by just using the arm64 version of msbuild would solve this, by e.g. just adding

      env:
        MSBUILD: ${{ inputs.arch == 'arm64' && 'C:\Program Files\Microsoft Visual Studio\18\Enterprise\MSBuild\Current\Bin\arm64\msbuild.exe' || '' }}

to

https://github.com/python/cpython/blob/e16b12bb982bc916664850da1d0a78109b2145b8/.github/workflows/reusable-windows.yml#L38-L40
because then PreferredToolArchitecture=arm64 and also the arm64 version of the compiler is chosen.

I think running the _freeze_module natively on an arm64 host is anyway the better fit?

[^1]: noticed already in https://github.com/python/cpython/issues/153668#issuecomment-5304195008

主要语言
Python
星标
77.2k
派生
36k
平均合并
1 天 17 小时
30 天内合并 PR
631

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

python/cpython 的其他 Issue

查看 python/cpython 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。