web-dev-qa-db-fra.com

Erreur "Impossible de trouver une version conforme à l'exigence" pour l'installation de l'application Django2.

Je suis un programmeur novice Python/Django.

J'ai créé une application basée sur Django 2.0 et je l'ai empaquetée conformément au document du document officiel .

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

Cependant, j'obtiens l'erreur et je ne peux pas installer. 

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)

Est-ce que quelqu'un sait la raison pour laquelle l'erreur se produit et comment y remédier?

De plus, j'ai créé requirements.txt avec la commande:

$ pip freeze > requirements.txt

Étapes à suivre pour reproduire:

  1. Téléchargez mon archive d'application:

    $ wget https://github.com/k-tamura/easybuggy4Django/releases/download/0.0.1/Django-easybuggy-0.1.tar.gz
    
  2. Exécutez la commande:

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

Meilleures salutations,

5
Kohei TAMURA

Le paquet certifi==2018.1.18 a été retiré de PyPI. La version actuelle est certifi==2018.4.16. La raison en est que certifi est un peu spécial: ce n'est rien d'autre qu'une collection de certificats SSL racine. Ainsi, une fois qu'ils sont périmés et qu'une nouvelle version de certifi avec de nouveaux certs est publiée, les anciens sont supprimés pour des raisons de sécurité - afin que vous ne continuiez pas accidentellement à installer et utiliser des certificats anciens et potentiellement révoqués ou compromis.

La solution pour vous consiste à supprimer la version exacte requise:

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

ou d'exiger une version minimale et (éventuellement) de l'adapter aux nouvelles versions de votre paquet:

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

Ce dernier est ce que j'utilise habituellement: de cette façon, 

  1. vous connaissez toujours une version minimale de l'exigence que vous avez testée (et vous savez donc que votre package fonctionne bien avec elle),
  2. si une ancienne version de certifi est installée, elle sera automatiquement mise à niveau vers la version la plus récente, au moment de l’installation de votre paquet.
1
hoefling