错误:这些包与需求文件中的哈希值不匹配。更新 Django 时

Ani*_*ozo 9 django pip

我有 Django 2.2.7,现在我想安装 Django 3.0.2。我读到我需要运行命令pip install -U Django来更新它,但是当我尝试时它显示此错误消息

ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
    Django from https://files.pythonhosted.org/packages/55/d1/8ade70e65fa157e1903fe4078305ca53b6819ab212d9fbbe5755afc8ea2e/Django-3.0.2-py3-none-any.whl#sha256=4f2c913303be4f874015993420bf0bd8fd2097a9c88e6b49c6a92f9bdd3fb13a:
        Expected sha256 4f2c913303be4f874015993420bf0bd8fd2097a9c88e6b49c6a92f9bdd3fb13a
             Got        f97dfd0d593c3c78e81ca2f4fd095a21cd0a30752e7b8754294bf1d42541a218
Run Code Online (Sandbox Code Playgroud)

我应该怎么办?

这是我的requeriments.txt

argon2-cffi==19.2.0
asgiref==3.2.3
cffi==1.13.2
Django==3.0.2
django-environ==0.4.5
djangorestframework==3.11.0
Pillow==7.0.0
psycopg2-binary==2.8.4
pycparser==2.19
pytz==2019.3
six==1.14.0
sqlparse==0.3.0

Run Code Online (Sandbox Code Playgroud)

Gre*_*zer 5

有几个不同的修复:

选项 1:删除 PIP 缓存目录

Unix ~/.cache/pip 并且它尊重 XDG_CACHE_HOME 目录。

macOS ~/Library/Caches/pip

Windows <CSIDL_LOCAL_APPDATA>\pip\Cache

选项 2:安装并指定无缓存目录:

pip install your-package --no-cache-dir

  • pip 缓存清除 (6认同)

Fly*_*ler 3

这是 pips 集成的检查机制,可以自动检查下载包的完整性。

您可以自己检查(通过单击has 列)从 pypi 加载的文件view的 sha256应该是whl

4f2c913303be4f874015993420bf0bd8fd2097a9c88e6b49c6a92f9bdd3fb13a
Run Code Online (Sandbox Code Playgroud)

你的错误表明你得到了

f97dfd0d593c3c78e81ca2f4fd095a21cd0a30752e7b8754294bf1d42541a218
Run Code Online (Sandbox Code Playgroud)

所以pip(出于安全原因)不为您安装该软件包。我建议

  • 检查是否从系统上的某个目录中pip获取了错误下载的文件 - 如果是,请尝试将其删除whltmpwhl
  • 检查是否可以毫无问题地安装其他软件包
  • 尝试手动下载该whl文件,然后检查输出pip hash <whl file>(如果它与4f2c91330...sha 匹配)以及是否可以执行pip install <whl file>