はじめに
Raspberry Pi に pip でパッケージをインストールする際、ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. というエラーが発生することがあります。
これは、ダウンロードしようとしているパッケージのハッシュ値が、期待される値と一致しないために起こります。
この記事では、face_recognition のインストール時に発生したこのエラーの解決策として、wgetコマンドを使ってパッケージを手動でダウンロードし、インストールする方法を紹介します。
エラー内容
pip install時に以下のようなエラーが発生しました。
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.
face-recognition-models>=0.3.0 from https://www.piwheels.org/simple/face-recognition-models/face_recognition_models-0.3.0-py2.py3-none-any.whl#sha256=8d6b0af2e37a17120c3f13107974bc252142a4ffcb4e58eabdfcf26608e52c24 (from face_recognition):
Expected sha256 8d6b0af2e37a17120c3f13107974bc252142a4ffcb4e58eabdfcf26608e52c24
Got 1e7cd2fe9bba3ecf96e311623dfcc3b9d1d3405a2c6c5147bfe71401ed536c08
こちらの記事を参考に、--no-chache-dirオプションをつけても同様のエラーが発生しました。
解決策
-
パッケージを手動でダウンロードする
https://pypi.org/project/face-recognition/#filesから、インストールしたい.whlファイルの URL をコピーします。
そして、コピーしたURLを使い、wgetコマンドを使ってパッケージを手動でダウンロードします。(env) hoge@hogehoge:~/tmp $ wget <コピーした.whlファイルのURL> -
ダウンロードしたパッケージを確認する
ダウンロードした
.whlファイルが確認できるか、lsコマンドで確認します。(env) hoge@hogehoge:~/tmp $ ls face_recognition-1.3.0-py2.py3-none-any.whl #<- ダウンロードしたファイル名 -
ダウンロードしたパッケージをインストールする
ダウンロードした
.whlファイルを、pip installコマンドでインストールします。(env) hoge@hogehoge:~/tmp $ pip install face_recognition-1.3.0-py2.py3-none-any.whl関連パッケージでも同様のエラーが発生する場合は、上記の手順を繰り返します。
まとめ
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. エラーは、パッケージのハッシュ値の不一致が原因で発生します。
手動でパッケージをダウンロードし、インストールすることでこのエラーを解決できます。