固定一个包会破坏图表

时间:2018-04-20 11:31:20

标签: python django pip pipenv

我将django固定到特定的旧版本:

...
[packages]
...
Django = "==1.10.8"

我无法安装:

$ pipenv install

Could not find a version that matches Django==1.10.8,>=1.11,>=1.6,>=1.7,>=1.8,>=1.8.7

当然,这些限制是相互排斥的。所以我无论如何强制安装,看一下图表:

$ pipenv install --skip-lock

现在看一下图表:

django-allauth==0.35.0
  - Django [required: >=1.11, installed: 1.10.8]
  - python3-openid [required: >=3.0.8, installed: 3.1.0]
    - defusedxml [required: Any, installed: 0.5.0]
  - requests [required: Any, installed: 2.18.4]
    - certifi [required: >=2017.4.17, installed: 2018.4.16]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.7, installed: 2.6]
    - urllib3 [required: >=1.21.1,<1.23, installed: 1.22]
  - requests-oauthlib [required: >=0.3.0, installed: 0.8.0]
    - oauthlib [required: >=0.6.2, installed: 2.0.7]
    - requests [required: >=2.0.0, installed: 2.18.4]
      - certifi [required: >=2017.4.17, installed: 2018.4.16]
      - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
      - idna [required: >=2.5,<2.7, installed: 2.6]
      - urllib3 [required: >=1.21.1,<1.23, installed: 1.22]

(多个包装会发生这种情况)

我现在该怎么办?我认为将解决我的问题是:

  • 搜索所有需要高于我想要的版本的软件包
  • 查看这些软件包的主页,看看我是否可以使用较低要求的旧版本,以满足我对django的当前最高要求

这看起来非常麻烦,而且似乎可以通过pipenv自动解决。

是否有比手动固定多个包更容易的解决方案?理想情况下,我想只针对django,让pipenv做其余的事。

1 个答案:

答案 0 :(得分:0)

如果你想将Django固定为版本1.10.8,你也不能将django-allauth固定为版本0.35,因为以下版本至少需要Django 1.11,所以你需要使用例如0.34或者在requirements.txt中设置不要固定确切的django-allauth版本