[英]How to build embeddable Python
我想知道如何为Windows构建可嵌入的Python。 找不到该特定包的任何信息或构建配置。
我问的原因是我可以在Mac和Linux上使用相同的变体。
最近,我不得不为64位Python 3.5.6构建一个可嵌入的zip(因为官方下载页面不提供大于3.5.4的Python),这里是步骤。
安装
如果您没有安装Sphinx
,请安装它并将sphinx-build
添加到PATH
2 :
> python -m pip install --user sphinx > set PATH=%PATH%;C:\\Users\\jenkins\\AppData\\Roaming\\Python\\Python35\\Scripts
如果您没有安装blurb
,请安装它,如果需要,可以向PATH
添加blurb
(如果您已完成上一步,则已经有正确的PATH
):
> python -m pip install --user blurb > set PATH=%PATH%;C:\\Users\\jenkins\\AppData\\Roaming\\Python\\Python35\\Scripts
克隆CPython回购。 在这里,我只克隆我需要的标签:
> git clone --depth 1 --branch v3.5.6 https://github.com/python/cpython
在repo目录中,生成NEWS
文件3,4 :
> blurb merge -f Misc\\NEWS
现在你可以触发构建:
> Tools\msi\buildrelease.bat -x64 --skip-nuget --test testout
更换-x64
与-x32
如果您所指定的32位拱门。 --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
等等。我The code execution cannot proceed because ucrtbased.dll was not found
是Windows专家,只是安装了一切可能来摆脱错误。
2看看buildrelease.bat
帮助,看起来你可以跳过使用--skip-doc
标志的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
。 毕竟,新闻不会落在嵌入式拉链中; 这只是为了让buildrelease.bat
开心。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.