"找不到满足要求的版本" Django2应用程序安装错误

时间:2018-05-10 05:31:58

标签: python django python-3.x pip setuptools

我是新手Python / Django程序员。

我创建了一个基于Django 2.0的应用程序,并根据the official document打包它。 然后我运行命令:

$ pip install --user django-easybuggy-0.1.tar.gz

但是,我收到错误而无法安装。

Processing ./django-easybuggy-0.1.tar.gz
Collecting certifi==2018.1.18 (from django-easybuggy==0.1)
  Could not find a version that satisfies the requirement certifi==2018.1.18 (from django-easybuggy==0.1) (from versions: )
No matching distribution found for certifi==2018.1.18 (from django-easybuggy==0.1)

有谁知道错误发生的原因以及如何解决?

此外,我通过以下命令创建了requirements.txt

$ pip freeze > requirements.txt

重现的步骤:

  1. 下载我的应用档案:

    $ wget https://github.com/k-tamura/easybuggy4django/releases/download/0.0.1/django-easybuggy-0.1.tar.gz
    
  2. 运行命令:

    $ pip install --user django-easybuggy-0.1.tar.gz
    
  3. 致以最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

从PyPI中删除了包certifi==2018.1.18。当前版本为certifi==2018.4.16。这样做的原因是certifi有点特殊:它只是一组根SSL证书,所以一旦它们变得陈旧,并且发布了具有新证书的certifi的新版本,旧的出于安全原因,这些内容正在被删除 - 因此您不会意外地继续安装和使用旧的,可能被撤销或受到破坏的证书。

您的解决方案是完全删除确切的版本要求:

setup(
    ...
    install_requires=['certifi'],
    ...
)

或要求最小版本和(可选)使用新版本的软件包:

setup(
    ...
    install_requires=['certifi>=2018.4.16'],
    ...
)

后者是我通常使用的:这样,

  1. 您始终知道您已经过测试过的最低要求版本(因此知道您的软件包可以正常使用),
  2. 如果用户碰巧安装了旧版certifi,则在安装软件包时,它会自动升级到当前最新版本。