python - 如何将从服务器下载的文件包含到 pip 安装中?

标签 python c pip packaging python-packaging

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

最佳答案

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

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

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

<小时/>

相关问题:

关于python - 如何将从服务器下载的文件包含到 pip 安装中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58414957/

相关文章:

c - 第一行的 '_attribute_((aligned(4)));'是什么意思?

python - 如何查找 Python 包的依赖项

python - Pyinstaller 错误 xfd 模块

python - 模拟 Python 的内置打印功能

python - 为什么 Python 日志记录默认写入 stderr?

python - 循环为给定范围的数字创建新行

Python lxml iterfind 带命名空间但前缀=无

c - 如何在内核驱动程序中分配用户空间缓冲区?

c - SSH连接失败:无法处理系统配置文件

Python 包附加名称