python具有可嵌入性_如何构建可嵌入Python

本文档介绍了如何为64位Python 3.5.6构建可嵌入的zip文件。首先,需要安装Git、Tortoise、Visual Studio C++ Build Tools 2015,并确保Sphinx和blurb在PATH中。然后,克隆CPython仓库,生成NEWS文件,最后使用buildrelease.bat脚本进行构建。在构建过程中,需要注意一些特定的参数和可能遇到的问题,如文件缺失或错误。
摘要由CSDN通过智能技术生成

最近,我不得不为64位的python3.5.6构建一个可嵌入的zip(因为官方下载页面没有为超过3.5.4的Python提供它们),下面是步骤。在

先决条件(一次性安装)

安装吉特

乌龟

VisualStudioC++构建工具2015(在构建最新的Python版本时,您可能需要版本2017)1

如果您还没有Sphinx,请安装它并将sphinx-build添加到PATH2:> python -m pip install user sphinx

> set PATH=%PATH%;C:\Users\jenkins\AppData\Roaming\Python\Python35\Scripts

如果尚未安装blurb,请安装它,必要时将blurb添加到PATH(如果您已经完成了上一步,那么您已经拥有了正确的PATH):> python -m pip install user blurb

> set PATH=%PATH%;C:\Users\jenkins\AppData\Roaming\Python\Python35\Scripts

配置生成环境克隆CPython repo。在这里,我只克隆我需要的标记:> git clone depth 1 branch v3.5.6 https://github.com/python/cpython

在repo dir中,生成NEWS文件3,4:> blurb merge -f Misc\NEWS

构建

现在可以触发构建:> Tools\msi\buildrelease.bat -x64 skip-nuget test testout

如果目标是32位arch,则将-x64替换为-x32。skip-nuget将忽略生成MSI安装程序。test testout将触发安装程序测试;如果需要,可以跳过它们。在

一旦构建完成,检查构建工件PCbuild\amd64\en-us\python-3.5.6-embed-amd64.zip。这是你的嵌入式拉链。在

构建第一次成功后,只要doc构建工件仍在repo中,就可以在以后的构建中跳过doc构建以进一步加速:> Tools\msi\buildrelease.bat -x64 skip-doc skip-nuget test testout

1请确保在VC++Build Tools安装程序中选择“Custom”,并选中所有选项;否则,可能会出现生成错误,如The code execution cannot proceed because ucrtbased.dll was not found等。我不是Windows专家,只是安装了所有可能的东西来消除错误。在

2查看buildrelease.bat帮助,似乎可以跳过带有skip-doc标志的文档构建,但使用该标记时,我得到了错误"C:\Users\jenkins\projects\cpython\Tools\msi\bundle\releaselocal.wixproj"

(Rebuild target) (1) ->

"C:\Users\jenkins\projects\cpython\Tools\msi\doc\doc.wixproj" (Rebuild target) (7) ->

(Link target) ->

C:\Users\jenkins\projects\cpython\Tools\msi\doc\doc_files.wxs(8): error

LGHT0103: The system cannot find the file 'python356.chm'. [C:\Users\jenkins\projects\cpython\Tools\msi\doc\doc.wixproj]

生成会因错误而中止。如果您设法在没有初始doc构建的情况下绕过这个问题(因此doc文件在build dir中可用),您可以跳过Sphinx安装。在

3否则,我得到构建错误"C:\Users\jenkins\projects\cpython\Tools\msi\bundle\releaselocal.wixproj" (Rebuild target) (1) ->

"C:\Users\jenkins\projects\cpython\Tools\msi\exe\exe.wixproj" (Rebuild target) (8) ->

C:\Users\jenkins\projects\cpython\Tools\msi\exe\exe_files.wxs(9): error

LGHT0103: The system cannot find the file '!(bindpath.src)Misc\NEWS'. [C:\Users\jenkins\projects\cpython\Tools\msi\exe\exe.wixproj]

4您可以用一个适当的make调用来替换该命令,但是我太懒了,无法解读Doc\Makefile。毕竟,新闻无论如何也不会在可嵌入的zip中出现;这只是为了让buildrelease.bat高兴。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值