概述
最近,我不得不为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:UsersjenkinsAppDataRoamingPythonPython35Scripts
如果尚未安装blurb,请安装它,必要时将blurb添加到PATH(如果您已经完成了上一步,那么您已经拥有了正确的PATH):> python -m pip install user blurb
> set PATH=%PATH%;C:UsersjenkinsAppDataRoamingPythonPython35Scripts
配置生成环境克隆CPython repo。在这里,我只克隆我需要的标记:> git clone depth 1 branch v3.5.6 https://github.com/python/cpython
在repo dir中,生成NEWS文件3,4:> blurb merge -f MiscNEWS
构建
现在可以触发构建:> Toolsmsibuildrelease.bat -x64 skip-nuget test testout
如果目标是32位arch,则将-x64替换为-x32。skip-nuget将忽略生成MSI安装程序。test testout将触发安装程序测试;如果需要,可以跳过它们。在
一旦构建完成,检查构建工件PCbuildamd64en-uspython-3.5.6-embed-amd64.zip。这是你的嵌入式拉链。在
构建第一次成功后,只要doc构建工件仍在repo中,就可以在以后的构建中跳过doc构建以进一步加速:> Toolsmsibuildrelease.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:UsersjenkinsprojectscpythonToolsmsibundlereleaselocal.wixproj"
(Rebuild target) (1) ->
"C:UsersjenkinsprojectscpythonToolsmsidocdoc.wixproj" (Rebuild target) (7) ->
(Link target) ->
C:UsersjenkinsprojectscpythonToolsmsidocdoc_files.wxs(8): error
LGHT0103: The system cannot find the file 'python356.chm'. [C:UsersjenkinsprojectscpythonToolsmsidocdoc.wixproj]
生成会因错误而中止。如果您设法在没有初始doc构建的情况下绕过这个问题(因此doc文件在build dir中可用),您可以跳过Sphinx安装。在
3否则,我得到构建错误"C:UsersjenkinsprojectscpythonToolsmsibundlereleaselocal.wixproj" (Rebuild target) (1) ->
"C:UsersjenkinsprojectscpythonToolsmsiexeexe.wixproj" (Rebuild target) (8) ->
C:UsersjenkinsprojectscpythonToolsmsiexeexe_files.wxs(9): error
LGHT0103: The system cannot find the file '!(bindpath.src)MiscNEWS'. [C:UsersjenkinsprojectscpythonToolsmsiexeexe.wixproj]
4您可以用一个适当的make调用来替换该命令,但是我太懒了,无法解读DocMakefile。毕竟,新闻无论如何也不会在可嵌入的zip中出现;这只是为了让buildrelease.bat高兴。在
最后
以上就是缓慢茉莉为你收集整理的python具有可嵌入性_如何构建可嵌入Python的全部内容,希望文章能够帮你解决python具有可嵌入性_如何构建可嵌入Python所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复