it-swarm.com.de

Fehler bei der Installation der Django2-App "Konnte keine Version finden, die die Anforderung erfüllt"

Ich bin Neuling Python/Django-Programmierer.

Ich habe eine Anwendung erstellt, die auf Django 2.0 basiert, und sie gemäß dem offiziellen Dokument ..__ verpackt. Dann führe ich den Befehl aus:

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

Ich erhalte jedoch den Fehler und kann nicht installieren. 

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)

Weiß jemand, warum der Fehler auftritt und wie er behoben werden kann?

Außerdem habe ich requirements.txt mit dem Befehl erstellt:

$ pip freeze > requirements.txt

Schritte zum Reproduzieren:

  1. Laden Sie mein Anwendungsarchiv herunter:

    $ wget https://github.com/k-tamura/easybuggy4Django/releases/download/0.0.1/Django-easybuggy-0.1.tar.gz
    
  2. Führen Sie den Befehl aus:

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

Freundliche Grüße,

5
Kohei TAMURA

Ich kann mein Problem durch Hinzufügen von Optionen beheben:

--proxy=http://[proxy_user_id]:[proxy_user_password]@[proxy_Host]:[proxy_port]/ --trusted-Host pypi.python.org  --trusted-Host pypi.org  --trusted-Host files.pythonhosted.org

zu pip install.

0
Kohei TAMURA

Das Paket certifi==2018.1.18 wurde aus PyPI entfernt. Die aktuelle Version ist certifi==2018.4.16. Der Grund dafür ist, dass certifi etwas Besonderes ist: Es ist nichts anderes als eine Sammlung von Root-SSL-Zertifikaten. Sobald sie veraltet sind und eine neue Version von certifi mit neuen Zertifikaten veröffentlicht wird, werden die alten aus Sicherheitsgründen gelöscht. Sie können also nicht versehentlich alte und möglicherweise gesperrte oder gefährdete Zertifikate installieren und verwenden.

Die Lösung für Sie ist, entweder die genaue Versionsanforderung zusammen aufzuheben:

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

oder eine Minimalversion erfordern und (optional) mit neuen Versionen Ihres Pakets anstoßen:

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

Letzteres ist, was ich normalerweise verwende: auf diese Weise, 

  1. sie kennen immer eine Mindestversion der von Ihnen getesteten Anforderung (und wissen somit, dass Ihr Paket damit gut funktioniert),
  2. wenn der Benutzer eine ältere Version von certifi installiert hat, wird diese automatisch auf die aktuellste Version aktualisiert, wenn Ihr Paket installiert wird.
1
hoefling