web-dev-qa-db-ja.com

Django2アプリのインストールに関する「要件を満たすバージョンが見つかりませんでした」エラー

私は初心者のPython/Djangoプログラマーです。

Django 2.0に基づいてアプリケーションを作成し、 公式ドキュメント に従ってパッケージ化しました。次に、次のコマンドを実行します:

$ 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
    

宜しくお願いします、

5
Kohei TAMURA

オプションを追加することで問題を解決できます:

--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

pip install

0
Kohei TAMURA

その包み certifi==2018.1.18がPyPIから削除されました。現在のバージョンはcertifi==2018.4.16。これは、certifiがいくぶん特別であることによるものです。ルートSSL証明書のコレクションにすぎないため、古くなり、新しい証明書を含むcertifiの新しいバージョンがリリースされると、古い証明書はセキュリティ上の理由で削除されています。そのため、古い証明書や失効した証明書や侵害された証明書を誤ってインストールして使用し続けることはありません。

あなたのための解決策は、正確なバージョン要件をすべて一緒にすることです:

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

または、最小限のバージョンを要求し、(オプションで)パッケージの新しいリリースでバンプします。

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

後者は私が通常使用するものです:このように、

  1. あなたは常にあなたがテストした要件の最小バージョンを知っています(そしてあなたのパッケージがそれでうまく動くことを知っています)、
  2. ユーザーが古いバージョンのcertifiをインストールした場合、パッケージがインストールされると、現在の最新バージョンに自動的にアップグレードされます。
1
hoefling