admin管理员组

文章数量:1026989

文章目录

  • 目标
  • 环境准备
    • 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
  • 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

参考资料

  • cpython
  • 为Windows编译Python安装包

文章目录

  • 目标
  • 环境准备
    • 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
  • 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

参考资料

  • cpython
  • 为Windows编译Python安装包

本文标签: 源码环境Windowspython