"ERRORE: root: non è stato trovato il codice per l'hash md5" quando si utilizzano comandi hg mercurial


103

Quando hgprovo ad usare qualsiasi comando Mercurial sulla console, continuo a ricevere questo errore. Ho installato Python usando Homebrew e sto eseguendo Mac OS Catalina v. 10.15.1.

Qualsiasi riferimento sarebbe apprezzato. Ecco l'errore che sto ricevendo:

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'

Ho anche provato a seguire le istruzioni su questo problema, ma nessuna delle soluzioni sembra funzionare

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
Manca il collegamento al numero 1.
UuDdLrLrSs


Qualche soluzione per MacOS? Ho provato queste soluzioni ma nessuna funziona. Continuo a ricevere lo stesso errore. Quando provo a collegare openssl mentre ho incollato la mia domanda ottengo l'errore incollato lì. Ho anche provato a eseguire questi 4 comandi ma non è successo nulla: echo 'export PATH = "/ usr/local/opt/openssl@1.1/bin: $ PATH"' >> ~ / .zshrc export LDFLAGS = "- L / usr / local /opt/openssl@1.1/lib" CPPFLAGS esportazione = "- I/usr/local/opt/openssl@1.1/include" export PKG_CONFIG_PATH = "/ usr/local/opt/openssl@1.1/lib/pkgconfig"
poca

Risposte:


325

La corsa brew reinstall python@2non ha funzionato per i miei ambienti virtuali Python 2.7 esistenti. Al loro interno c'erano ancora ERROR:root:code for hash sha1 was not founderrori.

Ho riscontrato questo problema dopo l'esecuzione brew upgrade openssl. Ed ecco la soluzione:

$ ls /usr/local/Cellar/openssl

...che mostra

1.0.2t

Secondo la versione esistente, eseguire:

$ brew switch openssl 1.0.2t

...che mostra

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

Successivamente, esegui il seguente comando in un virtualenv Python 2.7:

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

...che mostra

d41d8cd98f00b204e9800998ecf8427e

Niente più errori.


10
Questo mi ha aiutato su un aggiornamento di Mac Catalina o forse su bash -> zsh, dove tonnellate di cose come questa sono state rotte.
NathanQ,

3
Non avevo 1.0.2q ma fare lo stesso con 1.0.2r funzionava anche
Matt Coady il

2
Sì. Questo funziona per me. Ho trascorso giorni su questo e nel timore di dover reimmaginare la mia macchina. Avevo provato a reinstallare python @ 2 numerose volte ma non riuscivo ancora a risolvere il problema. Questo sicuramente funziona. MacOS Mojave 10.14.6.
hb5fa,

1
diavolo sì, funziona.
ho

1
@FlorentRoques è perché avresti avuto la stessa versione dell'esempio. Nel mio caso ls /usr/local/Cellar/openssltornò, 1.0.2squindi dovevo correrebrew switch openssl 1.0.2s
Jaybeecave,

86

Gestito per risolvere questo problema prima scollegando openssl

brew unlink openssl

E quindi reinstallare Python

brew reinstall python@2

Ho anche notato che durante l'esecuzione di 'brew doctor' c'era un avviso relativo a una cartella openssl che si trova in / usr / local / include / node /. Ho cancellato questa cartella prima di eseguire i comandi sopra (non sono sicuro se correlato)


2
Non avevo collegato openssl ma reinstallare Python lo ha fatto per me. Grazie!
Chrysillo,

Salvavita - grazie. Ho riscontrato problemi simili con l'installazione di Google Cloud SDK e questo ha risolto il problema.
Jonhendrix,

Ho dovuto ricollegare l'azzurro-cli con brew
chaosguru il

A partire dal 10 febbraio 2020, python @ 2 viene rimosso dall'homebrew e questa risposta non funzionerà. Vedi la risposta sopra di @Rockallite, che ha funzionato perfettamente per me.
Paul,

Grazie per l'aggiornamento @Paul, ho contrassegnato la risposta sopra come corretta
poca

31

Il caso per me è che quando installo le dipendenze di un'app Web Django, rovina l'ambiente. Quando scrivo cd, mostra lo stesso errore.

Il problema era la openssllibreria, non riesce a trovare quelli corretti.

Se sei su Macintosh, puoi digitare

ls /usr/local/Cellar/openssl

per vedere tutte le versioni,

brew switch openssl 1.0.XXXX

per scegliere la versione di openssl disponibile.

Quindi l'errore scompare :)


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

Ho lavorato dopo aver usato la risposta di @poca e poi la risposta sopra
imsheth

0

Quando importerei l'hashlib vedrei un messaggio di errore che indica che l'hash md5 non è stata trovata.

Sono stato in grado di risolvere questo problema prima scollegando openssl: brew unlink openssl

Quindi ho disinstallato Python 2.7 usando MacPorts: sudo port Uninstall Python27

Quindi ho installato Python 2.7 usando MacPorts: sudo port installa python27

Ora l'importazione di hashlib funziona :)


0

Disinstallare semplicemente python2

$ brew uninstall python@2

Se c'è qualche errore:

$ brew uninstall --ignore-dependencies python@2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.