【问题标题】:How to include files downloadable from a server into a pip installation?如何将可从服务器下载的文件包含到 pip 安装中?
【发布时间】:2020-02-13 07:58:09
【问题描述】:

我想创建一个 pip 可安装(这很重要,我们已经有一个主要工作的易安装版本,但我们想切换到 PIP)python 包,它本质上是一些 C 函数的包装器。据我了解,我不能指望用户安装了编译器(例如 Windows),因此我最好预编译这些文件并将它们上传到服务器上。我想要的是 PIP 在安装过程中下载合适的文件(如果不需要所有这些文件都随软件包一起提供,我会更喜欢)。我试过阅读文档,但没有找到任何解决我的问题的方法。 PIP 是否能够在安装期间从服务器下载已编译的 C 文件?如果是这样,行动方针是什么?我是否应该尝试包含一个 python 脚本,在安装时运行,这将确定操作系统和架构,然后访问特定链接?

【问题讨论】:

标签: python c pip packaging python-packaging


【解决方案1】:

您的大多数假设都是正确的。您可以提供源代码分发版或sdist,它需要在目标机器上安装构建工具才能安装。当您需要的 platform wheel 不存在时,或者如果您希望您的用户能够自己构建它,它通常会作为后备上传。

说到轮子,这是二进制 python 发行版的当前标准的名称,或bdists。如果您的包包含需要编译的代码,那么wheel 最终将是特定于平台的——取决于使用的构建系统,可以是LinuxmacOSWindows。例如,请参阅 pyPI 上的 sklearn 条目,它为所有受支持的 python 版本(加上 32/64 位支持,但这是另一回事)每个操作系统都有一个轮子。

如果您 specify an index(或只是其中有轮子的 a directory)应该从哪里安装 pip,它将自动确保它下载/安装正确的轮子,从而避免将特定于平台的代码写入您的源代码。最难的部分是造轮子。


相关问题:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2012-05-13
    相关资源
    最近更新 更多