现在支持Binary many-linux wheel:
https://github.com/pypa/manylinux
具体来说,我想使用可靠的beta操作系统在Travis上安装许多用于scipy的linux wheel。车轮列在这里:
https://pypi.python.org/pypi/scipy/0.17.1
我明白了:
Collecting scipy
Downloading scipy-0.17.1.tar.gz (12.4MB)
100% |████████████████████████████████| 12.4MB 100kB/s
而不是:
Collecting scipy
Downloading scipy-0.17.1-cp27-cp27mu-manylinux1_x86_64.whl (39.5MB)
100% |████████████████████████████████| 39.5MB 37kB/s
所以,为了解决这个问题,我想知道pip如何确定下载和安装哪个轮子。是的,我确实将pip更新到版本8.1.2,它支持二进制许多linux轮子。
具体来说,我不对替代解决方案感兴趣,只要回答这个问题,如果可以的话。
答案 0 :(得分:9)
你需要pip 8.1或更高版本以及基于glibc的linux发行版(而不是musl libc作为alpine linux)。
编辑:函数pip._internal.pep425tags.get_supported()
应按顺序返回支持的platform tags列表。 Pip优先选择此列表中较早出现的轮标签,而不是稍后出现的标签。
我也建议您使用python 3.5代替2.7;)
答案 1 :(得分:2)
对于第10点,您需要运行:
from pprint import pprint
import pip._internal
pprint(pip._internal.pep425tags.get_supported())
答案 2 :(得分:1)
所以,正确答案是pip有一个支持的标签列表,并尝试匹配这些标签。 pip.pep425tags.get_supported()
将列出您平台的标签,并且还会使用该列表来匹配manylinux二进制轮。
答案 3 :(得分:0)
从 pip 19.3 版开始,
TargetPython.get_tags()
返回
支持的 PEP 425 tags 来检查轮子候选对象 (source)。标签按优先顺序返回(最优先)。
from pip._internal.models.target_python import TargetPython
target_python = TargetPython()
pep425tags = target_python.get_tags()
类 TargetPython 封装了 Python 解释器的属性,该解释器的目标是包安装、下载等。