Pipenv:即使使用pipenv锁定也无法解决依赖关系--clear

时间:2018-12-03 18:51:20

标签: python pipenv

我正在使用Pipenv版本'2018.7.1'和pip 18.0。

我有一个Pipfile并运行pipenv install

它失败并显示: Could not find a version that matches prompt-toolkit<2.0.0,<2.1.0,==2.0.7,>=1.0.0,>=1.0.4,>=2.0.0 Tried: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 0.9, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.25, 0.26, 0.28, 0.30, 0.31, 0.32, 0.32, 0.32, 0.33, 0.33, 0.33, 0.34, 0.34, 0.34, 0.35, 0.35, 0.35, 0.36, 0.36, 0.36, 0.37, 0.37, 0.37, 0.38, 0.38, 0.38, 0.39, 0.39, 0.39, 0.40, 0.40, 0.40, 0.41, 0.41, 0.41, 0.42, 0.42, 0.42, 0.43, 0.43, 0.43, 0.44, 0.44, 0.44, 0.45, 0.45, 0.45, 0.46, 0.46, 0.46, 0.47, 0.47, 0.47, 0.48, 0.48, 0.48, 0.49, 0.49, 0.49, 0.50, 0.50, 0.50, 0.51, 0.51, 0.51, 0.52, 0.52, 0.52, 0.53, 0.53, 0.53, 0.54, 0.54, 0.54, 0.55, 0.55, 0.55, 0.56, 0.56, 0.56, 0.57, 0.57, 0.57, 0.58, 0.58, 0.58, 0.59, 0.59, 0.59, 0.60, 0.60, 0.60, 1.0.0, 1.0.0, 1.0.0, 1.0.1, 1.0.1, 1.0.1, 1.0.2, 1.0.2, 1.0.2, 1.0.3, 1.0.3, 1.0.3, 1.0.4, 1.0.4, 1.0.4, 1.0.5, 1.0.5, 1.0.5, 1.0.6, 1.0.6, 1.0.6, 1.0.7, 1.0.7, 1.0.7, 1.0.8, 1.0.8, 1.0.8, 1.0.9, 1.0.9, 1.0.9, 1.0.10, 1.0.10, 1.0.10, 1.0.13, 1.0.13, 1.0.13, 1.0.14, 1.0.14, 1.0.14, 1.0.15, 1.0.15, 1.0.15, 2.0.1, 2.0.1, 2.0.1, 2.0.2, 2.0.2, 2.0.2, 2.0.3, 2.0.3, 2.0.3, 2.0.4, 2.0.4, 2.0.4, 2.0.5, 2.0.5, 2.0.5, 2.0.6, 2.0.6, 2.0.6, 2.0.7, 2.0.7, 2.0.7 There are incompatible versions in the resolved dependencies.

我检查了https://pipenv.readthedocs.io/en/latest/diagnose/,他们建议尝试

pipenv lock --clear

和/或清除整个缓存目录。我都尝试了,但是得到了与上面相同的错误。我查看了

的结果

pipenv graph

看到对prompt-toolkit的所有引用(失败的依赖项)看起来像:

- prompt-toolkit [required: >=1.0.4,<2.0.0, installed: 1.0.15]

所以现在我非常困惑,因为似乎根本没有依赖冲突。有什么想法为什么会发生以及如何解决?

2 个答案:

答案 0 :(得分:0)

它告诉您为什么无法安装。

  

找不到与prompt-toolkit<2.0.0,[...],>=2.0.0匹配的版本

再次查看pipenv graph,您应该看到类似以下内容的

abc==1.0.1
  - prompt-toolkit [required: >=1.0.4,<2.0.0, installed: 1.0.15]
def==1.0.2
  - prompt-toolkit [required: >=2.0.0, installed: 1.0.15]

您必须删除abcdef中的一个。或使用较旧的def版本(如果存在)也使用prompt-toolkit<2.0.0

答案 1 :(得分:0)

如果您忽略了任何提及的依赖关系,那么Peilonrayz的答案很好。正如您提到的,有时pipenv不会显示确实影响可解决性的子依赖项。

尝试使用pipenv lock -clear -verbose,您还将获得有关子依赖项的信息。您可以在它们中搜索'==2.0.7'(看起来像是您的'missing'依赖项。一旦找到要求'==2.0.7'的子依赖项,就可以解决此问题。< / p>