【发布时间】:2018-03-17 20:42:08
【问题描述】:
是否在任何地方(PEP 或其他地方)声明了关于上传到PyPI 的 Linux 轮子的范围应该有多大的限制?具体来说:由于外部 C 库依赖于较新的 glibc,当我们无法构建后者时,将 linux_x86_64 轮子而不是 manylinux1_x86_64 上传到 PyPI 是否被认为是可接受的做法?
使用 PEP 425 平台标签 [3] 的构建工具不会跟踪有关特定 Linux 发行版或已安装系统库的信息,而是为所有轮子分配过于模糊的 linux_i686 或 linux_x86_64 标签。由于这种模糊性,不期望在一台机器上编译的带有 linux 标记的构建发行版可以在另一台机器上正常工作,因此,PyPI 不允许上传适用于 Linux 的轮子。
和“PyPI 支持”:
PyPI 应该允许上传包含 manylinux1 平台标签的轮子。 PyPI 不应尝试正式验证包含 manylinux1 平台标签的轮子是否符合本文档中描述的 manylinux1 策略。此验证任务应留给单独开发的其他工具,例如 auditwheel。
【问题讨论】:
-
我设法在
manylinuxproject 提供的CentOS 5.11 映像中创建了一个manylinux1_x86_64轮子。最初的失败是由于没有将-std=c99传递给gcc(通过外部C 库的./configure脚本)。结果是一个未声明的HUGE_VALL(详见math.h)。 -
目前,可以在 Debian GNU/Linux 10 内(即,在来自
manylinux项目的 CentOS 的 docker 镜像之外)生产manylinux2014_x86_64兼容的轮子。另见PEP 599。
标签: python linux pypi python-wheel