"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/[email protected]/bin:$PATH"' >> ~/.zshrc

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

For pkg-config to find openssl@1.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"
poca
sumber
1
Tautan Anda ke edisi 1 tidak ada.
UuDdLrLrSs
Ini kedengarannya seperti masalah Python: stackoverflow.com/questions/20399331/… atau stackoverflow.com/questions/41798118/…
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/[email protected]/bin: $ PATH"' >> ~ / .zshrc export LDFLAGS = "- L / usr / local /opt/[email protected]/lib "export CPPFLAGS =" - I/usr/local/opt/[email protected]/include "export PKG_CONFIG_PATH =" / usr/local/opt/[email protected]/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.

Rockallite
sumber
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)

poca
sumber
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 :)

Bingyu Shen
sumber
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 :)

pengguna1766438
sumber
0

Hapus instalan python2

$ brew uninstall python@2

Jika ada kesalahan:

$ brew uninstall --ignore-dependencies python@2

Ravi D
sumber