Python 使用pip安装软件包的最新兼容版本

Python 使用pip安装软件包的最新兼容版本,python,pip,pypi,Python,Pip,Pypi,我正在尝试使用PIP 9.0.1(Python 3.3)安装NumPy: /opt/python/cp33-cp33m/bin/pip安装'numpy=1.7' PIP兴高采烈地收集numpy-1.12,然后死去,因为numpy-1.11是支持Python 3.3的最后一个版本 Collecting numpy Using cached numpy-1.12.1.zip Complete output from command python setup.py egg_info:

我正在尝试使用PIP 9.0.1(Python 3.3)安装NumPy:

/opt/python/cp33-cp33m/bin/pip安装'numpy=1.7'
PIP兴高采烈地收集numpy-1.12,然后死去,因为numpy-1.11是支持Python 3.3的最后一个版本

Collecting numpy
  Using cached numpy-1.12.1.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-4jvhwz/numpy/setup.py", line 34, in <module>
        raise RuntimeError("Python version 2.7 or >= 3.4 required.")
    RuntimeError: Python version 2.7 or >= 3.4 required.
收集numpy
使用缓存的numpy-1.12.1.zip
从命令python setup.py egg_info完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/tmp/pip-build-4jvhwz/numpy/setup.py”,第34行,在
引发运行时错误(“需要Python版本2.7或>=3.4。”)
运行时错误:需要Python版本2.7或>=3.4。
如何让pip安装软件包的最新兼容版本


当然,我可以手动解决这个问题。但是这段代码是在一个包含大量Python发行版的批处理脚本中(我正在构建manylinux wheels),因此只有一个编程解决方案是合适的。

可能没有办法让PIP自动完成这项工作,但是可以使用如下字符串来限制为特定版本的Python安装的内容:

numpy>=1.7,<2; python_version > '3.4'
numpy>=1.7,<1.12; python_version < '3.4'
numpy>=1.7,'3.4'

numpy>=1.7,
pip
已经安装了它可以选择的最新兼容版本。附加检查发生在
numpy
s设置脚本中,而
pip
对此无能为力。这种情况描述了引入wheel格式的原因之一。
numpy>=1.7,<2; python_version > '3.4'
numpy>=1.7,<1.12; python_version < '3.4'