3

我在 Python 中遇到了一个有线问题,该问题cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl不适用于 SLES 操作系统。

我将 CI/CD 添加到我的存储库中,当我将包从 requirements.txt 下载到本地文件夹时dist-packages。Jenkins Slave 机器在 RedHat Linux 上运行。因此,它使用此文件下载,cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl而我的运行时在 SLES OS 11 中,这需要cryptography-2.9.2-cp35-abi3-manylinux1_x86_64.whl.

这个特定的依赖cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl是从 RedHat 下载的,当我将它重新分发到 SLES OS 时,这个依赖失败并出现以下错误。

 ERROR: Could not find a version that satisfies the requirement cryptography>=2.1.4 (from azure-identity->-r requirements.txt (line 2)) (from versions: none)
    ERROR: No matching distribution found for cryptography>=2.1.4 (from azure-identity->-r requirements.txt (line 2))

如果我将依赖项名称从更改cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whlcryptography-2.9.2-cp35-abi3-manylinux1_x86_64.whl它在 SLES OS 机器上工作正常。

当我签入 PyPI https://pypi.org/project/cryptography/#modal-close(这两个文件大小相同但哈希值不同)

我想了解 python 包中 manylinux1_x86_64 与 manylinux2010_x86_64 之间的区别。

提前致谢。

4

1 回答 1

5

根据这篇文章:manylinux 标签,manylinux2010 表示它需要pip >= 19.0

sudo python3 -m pip install --upgrade pip

可能会有所帮助。


manylinux 项目的目标是提供一种在 Linux 上将二进制 Python 扩展作为轮子分发的便捷方式。这项工作产生了PEP 513 , PEP 571定义manylinux2010_x86_64manylinux2010_i686平台标签进一步增强了它。

╔════════════════╦══════════════════════════════════╗
║  manylinux tag ║ Client-side pip version required ║
╠════════════════╬══════════════════════════════════╣
║  manylinux2014 ║ pip >= 19.3                      ║
║  manylinux2010 ║ pip >= 19.0                      ║
║  manylinux1    ║ pip >= 8.1.0                     ║
╚════════════════╩══════════════════════════════════╝
于 2020-07-28T15:10:52.207 回答