【问题标题】:Any limitations on platform constraints for wheels on PyPI?PyPI 上车轮的平台约束有什么限制吗?
【发布时间】:2018-03-17 20:42:08
【问题描述】:

是否在任何地方(PEP 或其他地方)声明了关于上传到PyPI 的 Linux 轮子的范围应该有多大的限制?具体来说:由于外部 C 库依赖于较新的 glibc,当我们无法构建后者时,将 linux_x86_64 轮子而不是 manylinux1_x86_64 上传到 PyPI 是否被认为是可接受的做法?

另见PEP 513 / "Rationale"

使用 PEP 425 平台标签 [3] 的构建工具不会跟踪有关特定 Linux 发行版或已安装系统库的信息,而是为所有轮子分配过于模糊的 linux_i686 或 linux_x86_64 标签。由于这种模糊性,不期望在一台机器上编译的带有 linux 标记的构建发行版可以在另一台机器上正常工作,因此,PyPI 不允许上传适用于 Linux 的轮子。

和“PyPI 支持”:

PyPI 应该允许上传包含 manylinux1 平台标签的轮子。 PyPI 不应尝试正式验证包含 manylinux1 平台标签的轮子是否符合本文档中描述的 manylinux1 策略。此验证任务应留给单独开发的其他工具,例如 auditwheel。

【问题讨论】:

  • 我设法在manylinux project 提供的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


【解决方案1】:

好吧,尝试上传到https://test.pypi.org 说:

HTTPError:400 客户端错误:二进制轮“foo-cp35-cp35m-linux_x86_64.whl”具有不受支持的平台标记“linux_x86_64”。网址:https://test.pypi.org/legacy/

【讨论】:

    猜你喜欢
    • 2014-02-10
    • 2011-01-13
    • 2022-11-02
    • 2019-11-16
    • 2020-03-09
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多