最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

windows 环境下编译Python源码(Python3.10.12)

业界 admin 10浏览 0评论

文章目录

    • 目标
    • 环境准备
      • VS 2022
      • cpython源码
      • 终端加速工具
    • 编译
      • 具体步骤
      • 注意事项
    • 错误&解决
    • 参考资料

目标

  • 编译生成如同官网安装的python一般的exe文件(存放在阿里云盘)

环境准备

无论是IDE、开发组件或者第三方库,本人的观点是”越新越好“,当然有时存在某个版本出现框架重构的情况,这就需要自己斟酌了。

VS 2022

  • 工具选择
    勾选如下图所示

  • .NET SDK安装
    如下图所示,二选一

cpython源码

本文以python3.10.12为例子。python官网通知自该版本后 Python 3.10进入"security fixes only" 阶段。

终端加速工具

该工具不是必须,没有就多试几次。

编译

具体步骤

  • 1 解压或者git checkout v3.10.12
  • 2 进入源码根目录里面的PCBuild文件夹下
  • 3 执行.\get_externals.bat使用虚拟python环境
  • 4 进入Tools\msi并执行.\get_externals.bat命令
  • 5 执行.\buildrelease.bat -h

    根据展示的命令选择编译路径,32或64位等参数。其中-o输出路径最好在PCbuild文件夹下(否则会有问题,可以试一试)。

注意事项

  • 步骤3步骤4使用NuGet下载编译时依赖的工具、库等
  • 在执行步骤5时,你最好使用虚拟python环境,如下图所示

    环境中的包是执行编译时自动下载的,这也说明你也需要一个python环境。
  • 步骤3、4和5可以只保留5,但考虑存在网络波动拆分为三部分。
  • 我在文章开头放了我编译好的,种种原因zip文件竟然不能上传。
  • 后续应该会更新安装包。

错误&解决

  • 错误:PrepareForBuild:

    externals\windows-installer\wix\wix2010.targets(735,5): error MSB4062: 未能从程序集 D:\Build\Python-3.10.13\externals\windows-installer\wix\WixTasks.dll 加载任务“ResolveWixReferences”。未能加载文件或程序“Microsoft.Build.Utilities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。 请确认 声明正确,该程序集及其所有依赖项都可用,并且该任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

    解决方法:开启.NET Framework 3.5

  • 错误:v143 buildtools 检测不到问题
    Python3.11.10及以后将只进行“安全修复”,手动编译会遇到如下错误:错误 MSB8020 无法找到 v143 的生成工具(平台工具集 =“v143”)。若要使用 v143 生成工具进行生成,请安装 v143 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标”

    解决方法
    增加MSVC v143 -VS 2022 C++ ARM64/ARM64EC build tools工具集,似乎是为构建安装包准备的,由WiX≥3.14引起的。

参考资料

  • cpython
  • 为Windows编译Python安装包
  • v143缺失问题

文章目录

    • 目标
    • 环境准备
      • VS 2022
      • cpython源码
      • 终端加速工具
    • 编译
      • 具体步骤
      • 注意事项
    • 错误&解决
    • 参考资料

目标

  • 编译生成如同官网安装的python一般的exe文件(存放在阿里云盘)

环境准备

无论是IDE、开发组件或者第三方库,本人的观点是”越新越好“,当然有时存在某个版本出现框架重构的情况,这就需要自己斟酌了。

VS 2022

  • 工具选择
    勾选如下图所示

  • .NET SDK安装
    如下图所示,二选一

cpython源码

本文以python3.10.12为例子。python官网通知自该版本后 Python 3.10进入"security fixes only" 阶段。

终端加速工具

该工具不是必须,没有就多试几次。

编译

具体步骤

  • 1 解压或者git checkout v3.10.12
  • 2 进入源码根目录里面的PCBuild文件夹下
  • 3 执行.\get_externals.bat使用虚拟python环境
  • 4 进入Tools\msi并执行.\get_externals.bat命令
  • 5 执行.\buildrelease.bat -h

    根据展示的命令选择编译路径,32或64位等参数。其中-o输出路径最好在PCbuild文件夹下(否则会有问题,可以试一试)。

注意事项

  • 步骤3步骤4使用NuGet下载编译时依赖的工具、库等
  • 在执行步骤5时,你最好使用虚拟python环境,如下图所示

    环境中的包是执行编译时自动下载的,这也说明你也需要一个python环境。
  • 步骤3、4和5可以只保留5,但考虑存在网络波动拆分为三部分。
  • 我在文章开头放了我编译好的,种种原因zip文件竟然不能上传。
  • 后续应该会更新安装包。

错误&解决

  • 错误:PrepareForBuild:

    externals\windows-installer\wix\wix2010.targets(735,5): error MSB4062: 未能从程序集 D:\Build\Python-3.10.13\externals\windows-installer\wix\WixTasks.dll 加载任务“ResolveWixReferences”。未能加载文件或程序“Microsoft.Build.Utilities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。 请确认 声明正确,该程序集及其所有依赖项都可用,并且该任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

    解决方法:开启.NET Framework 3.5

  • 错误:v143 buildtools 检测不到问题
    Python3.11.10及以后将只进行“安全修复”,手动编译会遇到如下错误:错误 MSB8020 无法找到 v143 的生成工具(平台工具集 =“v143”)。若要使用 v143 生成工具进行生成,请安装 v143 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标”

    解决方法
    增加MSVC v143 -VS 2022 C++ ARM64/ARM64EC build tools工具集,似乎是为构建安装包准备的,由WiX≥3.14引起的。

参考资料

  • cpython
  • 为Windows编译Python安装包
  • v143缺失问题
发布评论

评论列表 (0)

  1. 暂无评论