为什么pip-tools无法推断正确的版本?

时间:2019-01-29 21:55:28

标签: python pip

我尝试使用pip-compile锁定我的python依赖项,所以我写了一个非常简单的requirements.txt

future >= 0.16.0
dronekit >= 2.9.1
dronekit-sitl >= 3.2.0
pymavlink >= 2.2.8
MAVProxy == 1.6.4
simplejson >= 3.10.0

但是,当我编译它时,我收到以下消息:

$ pip-compile
Could not find a version that matches future==0.15.2,>=0.16.0
Tried: 0.0.1, 0.0.2, 0.0.3, 0.1.0, 0.2.0, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.5.2, 0.6.0, 0.7.0, 0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.11.4, 0.12.0, 0.12.1, 0.12.2, 0.12.3, 0.12.4, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.17.0, 0.17.1

令我困扰的是,future-0.16.0显然在版本列表中,而future == 0.15.2永远不会存在于任何其他项目的传递依赖中!那么,为什么pip-compile无法获得这些矛盾的信息?

1 个答案:

答案 0 :(得分:3)

future == 0.15.2 确实存在于传递依赖中。最新的dronekit版本v2.9.1在其setup.py中包含以下行:

'future==0.15.2'

在当前的dronekit主版本中,这是changedfuture>=0.15.2,但在任何发行版中都没有。