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

目标

  • 编译生成如同官网安装的python一般的exe文件

环境准备

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

VS 2022

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

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

cpython源码

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

终端加速工具

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

编译

具体步骤

  • 1 解压或者git checkout v3.10.12
  • 2 进入源码根目录里面的PCBuild文件夹下
  • 3 执行.\get_externals.bat
    图3
  • 4 进入Tools\msi并执行.\get_externals.bat命令
    图4
  • 5 执行.\buildrelease.bat -h
    图5
    根据展示的命令选择编译路径,32或64位等参数。其中-o输出路径最好在PCbuild文件夹下(否则会有问题,可以试一试)。

注意事项

  • 步骤3步骤4使用NuGet下载编译时依赖的工具、库等
  • 在执行步骤5时,你最好使用虚拟python环境,如下图所示
    图6
    环境中的包是执行编译时自动下载的,这也说明你也需要一个python环境。
  • 步骤3、4和5可以只保留5,但考虑存在网络波动拆分为三部分。
  • 我在文章开头放了我编译好的,种种原因zip文件竟然不能上传。
  • 后续应该会更新安装包。
  • 错误:PrepareForBuild:
    错误1

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
错误1解决方法

参考资料

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值