pip 说:这些包与需求文件中的哈希值不匹配。如果您更新了软件包版本,请更新哈希值

问题描述 投票:0回答:17

我正在使用 pip 安装所有 python 软件包,但出现错误,如下面的跟踪所示。问题是什么?我该如何解决?

usr@comp:~$ pip install flask
    Collecting flask
      Using cached Flask-0.11.1-py2.py3-none-any.whl
    Collecting itsdangerous>=0.21 (from flask)
      Using cached itsdangerous-0.24.tar.gz
    Collecting click>=2.0 (from flask)
      Using cached click-6.6.tar.gz
    Collecting Werkzeug>=0.7 (from flask)
      Using cached Werkzeug-0.11.11-py2.py3-none-any.whl
    Requirement already satisfied (use --upgrade to upgrade): Jinja2>=2.4 in /usr/lib/python2.7/dist-packages (from flask)
    Requirement already satisfied (use --upgrade to upgrade): MarkupSafe in /usr/lib/python2.7/dist-packages (from Jinja2>=2.4->flask)
    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.
        Werkzeug>=0.7 from https://pypi.python.org/packages/a9/5e/41f791a3f380ec50f2c4c3ef1399d9ffce6b4fe9a7f305222f014cf4fe83/Werkzeug-0.11.11-py2.py3-none-any.whl#md5=c63a21eedce9504d223ed89358c4bdc9 (from flask):
        Expected md5 c63a21eedce9504d223ed89358c4bdc9
             Got        13a168aafcc43354b6c79ef44bb0dc71
python pip
17个回答
99
投票

有一个类似的问题(为什么 pip 因包的 md5 哈希值错误而失败?)从 2013 年开始,我尝试过的对我有用的解决方案是:

sudo pip install --no-cache-dir flask

由阿托利提供


45
投票

这里的问题是 Python 包已使用新的哈希值更新,而 pip 尝试使用 pip 缓存目录中缓存的旧哈希值安装 Python 包。在尝试 pip 安装之前需要清除此缓存。所以完整的解决方案是:

python -m pip cache purge
python -m pip install <package>

19
投票

--no-cache-dir
起初在树莓派 4 中对我不起作用。

发现问题是由于pip安装过程中意外的网络变化/故障造成的

我必须使用

.whl
 手动下载损坏的 
wget

文件

并按如下方式安装:

sudo pip install scipy-1.3.0-cp37-cp37m-linux_armv7l.whl

随后

sudo pip install --no-cache-dir keras

然后就成功了。


12
投票

您需要将您的 pip 升级到新版本:

使用此命令:

python -m pip install --upgrade pip

适用于Mac/Linux操作系统及使用

python -m pip install --upgrade tensorflow

Windows 更新您的 pip。然后运行你的命令

 pip install flask

10
投票

看起来像是缓存问题,缓存的包与

REQUIREMENTS
不同。

可能是上次更新中断造成的。

我这样做解决了我的问题:

rm ~/.cache/pip -rf

7
投票

如果您在使用 pipelinev 时遇到此错误,请尝试

$ pipenv --clear
$ pipenv lock
$ pipenv install

4
投票

首先,尝试升级你的 pip,然后安装库:

python -m pip install --upgrade pip

如果不起作用,只需尝试在没有缓存的情况下安装它:

pip install --no-cache-dir the_library_name

3
投票

本质原因是网络不稳定。当我更换到良好的网络时,我再也不会出现此错误。

除了更换网络之外,似乎还有另外两种办法:

  1. 下载 url 指向的
    .whl
    文件,然后通过
    .whl
  2. 进行 pip 操作
  3. 更换开源镜像,然后pip install

我希望这对你有帮助。


1
投票

我对不同的模块也有类似的问题。这是由于网络故障造成的。我的修复并不复杂,但再次尝试安装它并且成功了。


1
投票

对我有用的解决方案:

    $ source .venv/Scripts/activate
    $ python -m pip install --upgrade pip
    $ python -m pip install <package> --no-cache-dir

如果它对某些软件包不起作用,请尝试在执行前面的步骤之前执行此操作:https://stackoverflow.com/a/69668918/17596747

然后再次执行前 3 个步骤。

UPD。也可能问题出在 VPN 上。尝试关闭/打开 VPN,看看是否有帮助。


1
投票

--no-cache-dir
并且清理现金不起作用。

我通过错误文本中的链接安装了

.whl
包,并使用 pip install 安装它,如下所示:
pip install Werkzeug-0.11.11-py2.py3-none-any.whl
(在下载的同一文件夹中)。

之后,一切都可以使用返回错误的相同

pip install
命令进行。


1
投票

尝试:

rm -rf "$(pip cache dir)"

如果您使用 conda:

conda clean --all

0
投票

也许 pipiserver(你 pip 安装的地方)上传一个 pkg,例如 Flask-1.0.0.tar.gz,并且 rm 上传一个新的 Flask-1.0.0.tag.gz,如果新的 pkg 代码已更改,则哈希值一定是不同的,有两种方法:

  1. 安装较旧的 pkg 版本=,
    pip install flask==0.0.9
  2. 等待新的 pkg 发布
    flask==1.0.1
    或缓存过期。

0
投票

我尝试使用

-m pip cache purge
并使用
--no-cache-dir
参数清除 pip 缓存,但没有帮助。

就我而言,在尝试安装软件包期间 VPN 处于活动状态。一旦我将其关闭,一切都会按预期进行。


0
投票

我尝试在 Raspberry Pi 5 上安装软件包,依赖项 SymPy 不断失败并显示此消息。以上述任何方式删除缓存都没有帮助。我最终从他们的 GitHub 页面下载了 SymPy 的源存档(一个 .tar.gz 文件),并运行:

pip install <archive_filename>

-1
投票

这对我有用!

pip install --no-cache-dir flask --user

-1
投票

如果您的 pip 是版本 3 那么您应该尝试:

 pip3 install <package name>

© www.soinside.com 2019 - 2024. All rights reserved.