我在Python中遇到了一个有线问题,这个问题是cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl
不能在SLES OS上工作。
当我将软件包从requirements.txt下载到本地文件夹dist-packages
时,我将CI/CD添加到我的存储库中。Jenkins Slave机器在RedHat Linux上运行。因此,它是用这个文件cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl
下载的,而我的运行时是在SLESOS11中,这需要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.whl
更改为cryptography-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的区别。
提前谢谢。
发布于 2020-07-28 23:10:52
根据本文:manylinux tag,manylinux2010意味着它需要pip >= 19.0
sudo python3 -m pip install --upgrade pip
可能会有所帮助。
manylinux项目的目标是提供一种在Linux上以轮子形式分发二进制Python扩展的便捷方法。这一努力产生了PEP 513,PEP 571定义了manylinux2010_x86_64
和manylinux2010_i686
平台标签,从而进一步增强了and。
╔════════════════╦══════════════════════════════════╗
║ manylinux tag ║ Client-side pip version required ║
╠════════════════╬══════════════════════════════════╣
║ manylinux2014 ║ pip >= 19.3 ║
║ manylinux2010 ║ pip >= 19.0 ║
║ manylinux1 ║ pip >= 8.1.0 ║
╚════════════════╩══════════════════════════════════╝
https://stackoverflow.com/questions/61796811
复制相似问题