„BŁĄD: root: kod skrótu md5 nie został znaleziony” podczas używania jakichkolwiek komend mercurialnych hg

102

Podczas próby użycia dowolnych hgpoleceń Mercurial na konsoli wciąż pojawia się ten błąd. Zainstalowałem Python za pomocą Homebrew i używam Mac OS Catalina v. 10.15.1.

Wszelkie odniesienia będą mile widziane. Oto błąd, który otrzymuję:

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'

Próbowałem też postępować zgodnie z instrukcjami w tej sprawie, ale żadne z rozwiązań wydaje się nie działać

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
źródło
1
Brak linku do problemu 1.
UuDdLrLrSs,
To brzmi jak problem z Pythonem: stackoverflow.com/questions/20399331/… lub stackoverflow.com/questions/41798118/…
UuDdLrLrSs 12.12.19
Jakieś rozwiązania dla MacOS? Próbowałem tych rozwiązań, ale żadne z nich nie działa. Wciąż pojawia się ten sam błąd. Kiedy próbuję połączyć openssl w trakcie wklejania w moim pytaniu, pojawia się tam wklejony błąd. Próbowałem także uruchomić te 4 polecenia, ale nic się nie wydarzyło: 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

Odpowiedzi:

323

Uruchamianie brew reinstall python@2nie działało w moich istniejących środowiskach wirtualnych Python 2.7. Wewnątrz wciąż były ERROR:root:code for hash sha1 was not foundbłędy.

Napotkałem ten problem po uruchomieniu brew upgrade openssl. A oto poprawka:

$ ls /usr/local/Cellar/openssl

...który pokazuje

1.0.2t

Zgodnie z istniejącą wersją uruchom:

$ brew switch openssl 1.0.2t

...który pokazuje

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

Następnie uruchom następującą komendę w virtualenv Python 2.7:

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

...który pokazuje

d41d8cd98f00b204e9800998ecf8427e

Nigdy więcej błędów.

Rockallite
źródło
10
Pomogło mi to w aktualizacji Mac Catalina lub może bash -> zsh, w którym mnóstwo takich rzeczy zostało zepsutych.
NathanQ
3
Nie miałem wersji 1.0.2q, ale robienie tego samego z wersją 1.0.2r również działało
Matt Coady
2
Tak. To działa dla mnie. Spędziłem nad tym dni i obawiam się, że muszę ponownie zobrazować moją maszynę. Próbowałem ponownie zainstalować Python @ 2 wiele razy, ale nadal nie mogłem rozwiązać problemu. Ten zdecydowanie działa. MacOS Mojave 10.14.6.
hb5fa
1
do diabła tak, to działa. spędziłem kilka dni na wypróbowywaniu tysiąca rozwiązań
ariezona
1
@FlorentRoques, ponieważ miałbyś taką samą wersję jak w przykładzie. W moim przypadku ls /usr/local/Cellar/opensslwróciłem 1.0.2swięc musiałem biecbrew switch openssl 1.0.2s
Jaybeecave
86

Udało się to naprawić przez pierwsze odłączenie openssl

brew unlink openssl

A następnie ponowna instalacja Pythona

brew reinstall python@2

Zauważyłem też, że podczas uruchamiania „brew doctor” pojawiło się ostrzeżenie związane z folderem openssl znalezionym w / usr / local / include / node /. Usunąłem ten folder przed uruchomieniem powyższych poleceń (nie jestem pewien, czy są powiązane)

poca
źródło
2
Nie miałem połączonego openssl, ale ponowna instalacja Pythona zrobiła to za mnie. Dzięki!
chrysillo
Ratownik - dzięki. Wystąpiły podobne problemy z instalacją Google Cloud SDK i to rozwiązało problem.
jonhendrix
Musiałem ponownie połączyć azure-cli z naparem
chaosguru
Od 10 lutego 2020 roku python @ 2 został usunięty z homebrew i ta odpowiedź nie będzie działać. Zobacz powyższą odpowiedź @Rockallite, która działała idealnie dla mnie.
Paul
Dzięki za aktualizację @Paul, zaznaczyłem powyższą odpowiedź jako poprawną
poca
30

Chodzi mi o to, że kiedy instaluję zależności aplikacji sieci web django, to psuje środowisko. Kiedy piszę cd, pokazuje ten sam błąd.

Problemem była opensslbiblioteka, nie można znaleźć poprawnych.

Jeśli korzystasz z komputera Macintosh, możesz pisać

ls /usr/local/Cellar/openssl

aby zobaczyć wszystkie wersje,

brew switch openssl 1.0.XXXX

wybrać dostępną wersję openssl.

Błąd zniknął :)

Bingyu Shen
źródło
4
jeden liniowiecbash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Florent Roques
Pracowałem po tym, jak użyłem odpowiedzi @poca, a następnie powyżej odpowiedzi
imsheth
0

Podczas importowania hashliba zobaczyłem komunikat o błędzie informujący, że hash md5 nie został znaleziony.

Byłem w stanie rozwiązać ten problem, najpierw odłączając openssl: brew unlink openssl

Następnie odinstalowałem Python 2.7 za pomocą MacPorts: sudo port odinstaluj python27

Następnie zainstalowałem Python 2.7 za pomocą MacPorts: sudo port install python27

Teraz działa importowanie hashlib :)

użytkownik1766438
źródło
0

Po prostu odinstaluj python2

$ brew uninstall python@2

Jeśli wystąpi jakikolwiek błąd:

$ brew uninstall --ignore-dependencies python@2

Ravi D.
źródło