"ERROR: root: code für hash md5 wurde nicht gefunden", wenn hg mercurial befehle verwendet werden


103

Beim Versuch, hgMercurial-Befehle auf der Konsole zu verwenden, wird immer wieder dieser Fehler angezeigt. Ich habe Python mit Homebrew installiert und verwende Mac OS Catalina v. 10.15.1.

Jede Referenz wäre dankbar. Hier ist der Fehler, den ich bekomme:

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'

Ich habe auch versucht, den Anweisungen zu diesem Thema zu folgen, aber keine der Lösungen scheint zu funktionieren

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
Ihr Link zu Ausgabe 1 fehlt.
UuDdLrLrSs


Irgendwelche Lösungen für MacOS? Ich habe diese Lösungen ausprobiert, aber keine davon funktioniert. Ich bekomme immer den gleichen Fehler. Wenn ich versuche, openssl zu verlinken, während ich meine Frage eingefügt habe, wird der Fehler dort eingefügt. Ich habe auch versucht, diese 4 Befehle auszuführen, aber es ist nichts passiert: 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

Antworten:


325

Das Ausführen brew reinstall python@2funktionierte in meinen vorhandenen virtuellen Python 2.7-Umgebungen nicht. In ihnen gab es immer noch ERROR:root:code for hash sha1 was not foundFehler.

Ich bin auf dieses Problem gestoßen, nachdem ich gelaufen bin brew upgrade openssl. Und hier ist die Lösung:

$ ls /usr/local/Cellar/openssl

...welche Shows

1.0.2t

Führen Sie gemäß der vorhandenen Version Folgendes aus:

$ brew switch openssl 1.0.2t

...welche Shows

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

Führen Sie danach den folgenden Befehl in einer virtuellen Python 2.7-Version aus:

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

...welche Shows

d41d8cd98f00b204e9800998ecf8427e

Keine Fehler mehr.


10
Dies half mir bei einem Mac Catalina Update oder vielleicht bei der Bash -> Zsh, bei der Unmengen solcher Dinge kaputt waren.
NathanQ

3
Ich hatte nicht 1.0.2q, aber das gleiche mit 1.0.2r zu tun hat auch funktioniert
Matt Coady

2
Ja. Das funktioniert bei mir. Ich habe Tage damit verbracht und befürchtet, meine Maschine neu abbilden zu müssen. Ich habe mehrfach versucht, Python @ 2 neu zu installieren, konnte das Problem jedoch immer noch nicht beheben. Dieser funktioniert definitiv. MacOS Mojave 10.14.6.
hb5fa

1
Hölle ja, es funktioniert. verbrachte Tage damit, tausend Lösungen
auszuprobieren

1
@FlorentRoques, weil Sie die gleiche Version wie im Beispiel gehabt hätten. In meinem Fall ls /usr/local/Cellar/opensslkehrte 1.0.2sich zurück, also musste ich rennenbrew switch openssl 1.0.2s
Jaybeecave

86

Es ist gelungen, dies zu beheben, indem zuerst die Verknüpfung von openssl aufgehoben wurde

brew unlink openssl

Und dann Python neu installieren

brew reinstall python@2

Ich habe auch festgestellt, dass beim Ausführen von 'Brew Doctor' eine Warnung in Bezug auf einen openssl-Ordner in / usr / local / include / node / angezeigt wurde. Ich habe diesen Ordner gelöscht, bevor ich die obigen Befehle ausgeführt habe (nicht sicher, ob sie zusammenhängen).


2
Ich hatte keinen OpenSSL-Link, aber die Neuinstallation von Python hat es für mich getan. Vielen Dank!
Chrysillo

Lebensretter - danke. Bei der Installation des Google Cloud SDK traten ähnliche Probleme auf. Dadurch wurde das Problem behoben.
Jonhendrix

Ich musste das Azure-Cli mit
Brew neu verknüpfen

Ab dem 10. Februar 2020 wird Python @ 2 aus Homebrew entfernt und diese Antwort funktioniert nicht. Siehe die obige Antwort von @Rockallite, die für mich perfekt funktioniert hat.
Paul

Vielen Dank für das Update @Paul, ich habe die obige Antwort als die richtige markiert
poca

30

Der Fall für mich ist, dass wenn ich Abhängigkeiten einer Django-Web-App installiere, dies die Umgebung durcheinander bringt. Wenn ich tippe cd, wird der gleiche Fehler angezeigt.

Das Problem war die opensslBibliothek, sie kann nicht die richtigen finden.

Wenn Sie auf einem Macintosh arbeiten, können Sie eingeben

ls /usr/local/Cellar/openssl

um alle Versionen zu sehen,

brew switch openssl 1.0.XXXX

um die verfügbare openssl-Version auszuwählen.

Dann ist der Fehler weg :)


4
ein Linerbash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Florent Roques

Arbeitete, nachdem ich @pocas Antwort und dann die oben genannte Antwort verwendet hatte
imsheth

0

Wenn ich hashlib importieren würde, würde eine Fehlermeldung angezeigt, die besagt, dass Hash md5 nicht gefunden wurde.

Ich konnte dieses Problem beheben, indem ich zuerst die Verknüpfung von openssl aufhob: Brew unlink openssl

Dann habe ich Python 2.7 mit MacPorts deinstalliert: sudo port deinstalliere python27

Dann habe ich Python 2.7 mit MacPorts installiert: sudo port install python27

Jetzt funktioniert das Importieren von Hashlib :)


0

Deinstallieren Sie einfach python2

$ brew uninstall python@2

Wenn ein Fehler auftritt:

$ brew uninstall --ignore-dependencies python@2

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.