gpt4 book ai didi

python - 如何构建可嵌入的 Python

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:24 25 4
gpt4 key购买 nike

我想知道如何为 Windows 构建可嵌入的 Python。找不到该特定包的任何信息或构建配置。

我问的原因是我可以对 Mac 和 Linux 使用相同的变体。

最佳答案

最近,我不得不为 64 位 Python 3.5.6 构建一个可嵌入的 zip(因为官方下载页面不为 Python 大于 3.5.4 提供它们),这里是步骤。

先决条件(一次性安装)

安装

  1. git
  2. TortoiseSVN
  3. Visual Studio C++ Build Tools 2015(构建最新的 Python 版本时可能需要 2017 版)1
  4. 如果你还没有Sphinx安装,安装它并添加sphinx-buildPATH 2:

    > python -m pip install --user sphinx
    > set PATH=%PATH%;C:\Users\jenkins\AppData\Roaming\Python\Python35\Scripts
  5. 如果你还没有blurb安装,安装它,添加blurbPATH如有必要(如果您已完成上一步,则您已经拥有正确的 PATH ):

    > python -m pip install --user blurb
    > set PATH=%PATH%;C:\Users\jenkins\AppData\Roaming\Python\Python35\Scripts

配置编译环境

  1. 克隆 CPython 代码库。在这里,我只克隆我需要的标签:

    > git clone --depth 1 --branch v3.5.6 https://github.com/python/cpython
  2. 在 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 .这是您的可嵌入 zip。

第一次构建成功后,您可以在以后的构建中跳过文档构建以进一步加速,只要文档构建工件保留在 repo 中:

> Tools\msi\buildrelease.bat -x64 --skip-doc --skip-nuget --test testout

1 确保在 VC++ Build Tools 安装程序中选择“自定义”并选中所有选项;否则,您可能会遇到类似 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]

并且构建因错误而中止。如果您设法在没有初始文档构建的情况下规避此问题(因此文档文件在构建目录中可用),您可以跳过 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快乐。

关于python - 如何构建可嵌入的 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42280553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com