"ERROR: root: kode untuk hash md5 tidak ditemukan" saat menggunakan perintah merkuri hg


103

Saat mencoba menggunakan hgperintah Mercurial apa pun di konsol, saya terus mendapatkan kesalahan ini. Saya menginstal Python menggunakan Homebrew dan saya menjalankan Mac OS Catalina v. 10.15.1.

Referensi apa pun akan dihargai. Inilah kesalahan yang saya dapatkan:

hg commit --amend
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha1
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha224
ERROR:root:code for hash sha256 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha384
ERROR:root:code for hash sha512 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha512
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 43, in <module>
    dispatch.run()
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 150, in __getattr__
    self._load()
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 94, in _load
    _origimport, head, globals, locals, None, level)
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 43, in _hgextimport
    return importfunc(name, globals, *args, **kwargs)
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/mercurial/dispatch.py", line 625, in <module>
    class lazyaliasentry(object):
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/mercurial/dispatch.py", line 636, in lazyaliasentry
    @util.propertycache
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 150, in __getattr__
    self._load()
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 94, in _load
    _origimport, head, globals, locals, None, level)
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 43, in _hgextimport
    return importfunc(name, globals, *args, **kwargs)
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/mercurial/util.py", line 180, in <module>
    'md5': hashlib.md5,
  File "/usr/local/Cellar/mercurial/4.9/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 151, in __getattr__
    return getattr(self._module, attr)
AttributeError: 'module' object has no attribute 'md5'

Saya juga mencoba mengikuti instruksi tentang masalah ini tetapi tidak ada solusi yang tampaknya berhasil

brew link openssl --force
Warning: Refusing to link macOS-provided software: openssl@1.1
If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

For pkg-config to find openssl@1.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

1
Tautan Anda ke edisi 1 tidak ada.
UuDdLrLrSs


Ada solusi untuk MacOS? Saya memang mencoba solusi ini tetapi tidak satupun yang bekerja. Saya terus mendapatkan kesalahan yang sama. Ketika saya mencoba menautkan openssl ketika saya menempelkan pertanyaan saya, saya mendapatkan kesalahan yang disisipkan di sana. Saya juga mencoba menjalankan 4 perintah ini tetapi tidak ada yang terjadi: echo 'export PATH = "/ usr/local/opt/openssl@1.1/bin: $ PATH"' >> ~ / .zshrc export LDFLAGS = "- L / usr / local /opt/openssl@1.1/lib "export CPPFLAGS =" - I/usr/local/opt/openssl@1.1/include "export PKG_CONFIG_PATH =" / usr/local/opt/openssl@1.1/lib/pkgconfig "
poca

Jawaban:


325

Menjalankan brew reinstall python@2tidak berfungsi untuk lingkungan virtual Python 2.7 yang ada. Di dalam mereka masih ada ERROR:root:code for hash sha1 was not foundkesalahan.

Saya mengalami masalah ini setelah saya berlari brew upgrade openssl. Dan inilah solusinya:

$ ls /usr/local/Cellar/openssl

...yang menunjukkan

1.0.2t

Menurut versi yang ada, jalankan:

$ brew switch openssl 1.0.2t

...yang menunjukkan

Cleaning /usr/local/Cellar/openssl/1.0.2t
Opt link created for /usr/local/Cellar/openssl/1.0.2t

Setelah itu, jalankan perintah berikut dalam Python 2.7 virtualenv:

(my-venv) $ python -c "import hashlib;m=hashlib.md5();print(m.hexdigest())"

...yang menunjukkan

d41d8cd98f00b204e9800998ecf8427e

Tidak ada lagi kesalahan.


10
Ini membantu saya pada pembaruan mac catalina atau mungkin bash -> zsh di mana banyak hal seperti ini rusak.
NathanQ

3
Saya tidak memiliki 1.0.2q tetapi melakukan hal yang sama dengan 1.0.2r juga berhasil
Matt Coady

2
Iya. Ini bekerja untuk saya. Saya telah menghabiskan waktu berhari-hari untuk hal ini dan takut harus mengubah gambar mesin saya. Saya sudah mencoba menginstal ulang python @ 2 berkali-kali tetapi masih tidak dapat memperbaiki masalah. Yang ini pasti berhasil. MacOS Mojave 10.14.6.
hb5fa

1
sial ya, itu berhasil. menghabiskan berhari-hari mencoba ribuan solusi
ariezona

1
@FlorentRoques itu karena Anda akan memiliki versi yang sama dengan contoh. Dalam kasus saya ls /usr/local/Cellar/opensslkembali 1.0.2sjadi saya harus menjalankanbrew switch openssl 1.0.2s
Jaybeecave

86

Berhasil untuk memperbaikinya dengan membatalkan tautan pertama openssl

brew unlink openssl

Dan kemudian instal ulang python

brew reinstall python@2

Saya juga memperhatikan bahwa ketika menjalankan 'brew doctor' ada peringatan terkait dengan folder openssl yang ditemukan di / usr / local / include / node /. Saya menghapus folder ini sebelum menjalankan perintah di atas (tidak yakin jika terkait)


2
Saya tidak memiliki openssl yang ditautkan tetapi menginstal ulang python melakukannya untuk saya. Terima kasih!
chrysillo

Penyelamat - terima kasih. Saya mengalami masalah serupa dengan menginstal Google Cloud SDK dan ini menyelesaikan masalah.
jonhendrix

Saya harus menautkan kembali cli azure-cli dengan minuman
chaosguru

Pada 10 Februari 2020, python @ 2 dihapus dari homebrew dan jawaban ini tidak akan berfungsi. Lihat jawaban di atas oleh @Rockallite, yang bekerja dengan baik untuk saya.
Paul

Terima kasih atas pembaruan @ Paul, saya menandai jawaban di atas sebagai jawaban yang benar
poca

30

Kasus saya adalah ketika saya menginstal dependensi aplikasi web Django, itu mengacaukan lingkungan. Saat saya mengetik cd, ini menunjukkan kesalahan yang sama.

Masalahnya adalah opensslperpustakaan, tidak dapat menemukan yang benar.

Jika Anda menggunakan Macintosh, Anda dapat mengetik

ls /usr/local/Cellar/openssl

untuk melihat semua versi,

brew switch openssl 1.0.XXXX

untuk memilih versi openssl yang tersedia.

Maka kesalahan hilang :)


4
one linerbash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Florent Roques

Bekerja setelah saya menggunakan jawaban @poca dan kemudian di atas
imsheth

0

Ketika saya akan mengimpor hashlib saya akan melihat pesan kesalahan yang menyatakan bahwa hash md5 tidak ditemukan.

Saya dapat memperbaiki masalah ini dengan terlebih dahulu memutuskan tautan openssl: brew unlink openssl

Lalu saya uninstall python 2.7 menggunakan MacPorts: sudo port uninstall python27

Kemudian saya menginstal python 2.7 menggunakan MacPorts: sudo port install python27

Sekarang mengimpor hashlib berfungsi :)


0

Hapus instalan python2

$ brew uninstall python@2

Jika ada kesalahan:

$ brew uninstall --ignore-dependencies python@2

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.