【问题标题】:How to pre-build Python binaries如何预构建 Python 二进制文件
【发布时间】:2015-10-12 15:34:55
【问题描述】:

我正在尝试将 Python 环境部署为 RPM。由于目标系统可能没有 Internet 连接和/或 C 编译器,因此即时下载可能无法正常工作。开发环境为 Python 2.7.10,部分模块通过 pip 安装。

如何像ActiveState Python 那样预先构建 Python 环境?

【问题讨论】:

    标签: python python-2.7 deployment activestate


    【解决方案1】:

    有一个名为“PEX”的工具,Twitter 使用它来将一堆 Python 代码、库、模块和支持数据预编译到一个包中。

    它基本上是一个环境的压缩档案,它会像一个 EXE 文件一样启动。

    有一些注意事项 - 第一,它们需要一段时间才能启动。第二,这些文件只能在你构建它们的同一版本的 Python 上工作——如果你有一个混合的 3.0/2.7/2.6 环境,它就会变得复杂。

    PEX 本身在安装和缓存缓存方面有几个突出的问题。

    【讨论】:

    • 谢谢!目标系统有 RHEL 6 和 7。我不想弄乱系统 python。现在我只是在 /opt/python 目录中安装并添加到路径以访问它。我认为 PEX 更面向 Windows。我现在更专注于linux。你怎么看?
    • PEX 绝对是一个兼容 Linux 的工具。我们使用它是为了不必担心内部库中的版本差异会破坏应用程序——我们知道应用程序有一个通过测试的库版本。 Twitter 使用(AFAICT)它,因此他们不会在每台生产机器上安装所有支持库——他们只是将 pex 推送到它并启动它。
    • 一个可以构建将在混合系统上运行的 PEX —— 我围绕基本工具编写了一个包装器,它可以做到这一点;它为构建服务器上可用的每个 Python 版本编译一个 PEX,然后将它们合并到一个文件中,该文件将在多个 Python 平台上启动。
    • 这听起来很有趣,我可以使用。我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 2017-11-22
    • 1970-01-01
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    相关资源
    最近更新 更多