"ERROR: raíz: no se encontró el código para hash md5" al usar cualquier comando hg mercurial

103

Cuando trato de usar cualquier hgcomando Mercurial en la consola, sigo recibiendo este error. Instalé Python usando Homebrew y estoy ejecutando Mac OS Catalina v. 10.15.1.

Cualquier referencia sería apreciada. Aquí está el error que recibo:

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'

También intenté seguir las instrucciones sobre este tema, pero ninguna de las soluciones parece funcionar

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
fuente
1
Falta su enlace al problema 1.
UuDdLrLrSs
Esto suena como un problema de Python: stackoverflow.com/questions/20399331/… o stackoverflow.com/questions/41798118/…
UuDdLrLrSs
¿Alguna solución para MacOS? Intenté estas soluciones pero ninguna de ellas funciona. Sigo recibiendo el mismo error. Cuando intento vincular openssl mientras pego mi pregunta, aparece el error pegado allí. También intenté ejecutar estos 4 comandos pero no pasó nada: 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

Respuestas:

325

La ejecución brew reinstall python@2no funcionó para mis entornos virtuales Python 2.7 existentes. Dentro de ellos todavía había ERROR:root:code for hash sha1 was not founderrores.

Encontré este problema después de correr brew upgrade openssl. Y aquí está la solución:

$ ls /usr/local/Cellar/openssl

...que muestra

1.0.2t

Según la versión existente, ejecute:

$ brew switch openssl 1.0.2t

...que muestra

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

Después de eso, ejecute el siguiente comando en un Python 2.7 virtualenv:

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

...que muestra

d41d8cd98f00b204e9800998ecf8427e

No mas errores.

Rockallita
fuente
10
Esto me ayudó en una actualización de Mac Catalina o tal vez en bash -> zsh donde toneladas de cosas como esta se rompieron.
NathanQ
3
No tenía 1.0.2q pero hacer lo mismo con 1.0.2r también funcionó
Matt Coady
2
Si. Esto funciona para mi. He pasado días en esto y temo tener que volver a crear una imagen de mi máquina. Intenté reinstalar python @ 2 varias veces, pero aún así no pude solucionar el problema. Este definitivamente funciona. MacOS Mojave 10.14.6.
hb5fa
1
demonios sí, funciona. pasé días probando mil soluciones
ariezona
1
@FlorentRoques es porque habrías tenido la misma versión que el ejemplo. En mi caso ls /usr/local/Cellar/opensslregresé, 1.0.2sasí que necesitaba correrbrew switch openssl 1.0.2s
Jaybeecave
86

Se las arregló para solucionar esto al desenlazar primero openssl

brew unlink openssl

Y luego reinstalar Python

brew reinstall python@2

También noté que al ejecutar 'brew doctor' había una advertencia relacionada con una carpeta openssl que se encuentra en / usr / local / include / node /. Eliminé esta carpeta antes de ejecutar los comandos anteriores (no estoy seguro si está relacionado)

poca
fuente
2
No tenía un enlace de OpenSSL pero la reinstalación de Python lo hizo por mí. ¡Gracias!
chrysillo
Salvavidas - gracias. Estaba experimentando problemas similares con la instalación de Google Cloud SDK y esto resolvió el problema.
jonhendrix
Tuve que volver a vincular el azul-cli con cerveza
chaosguru
A partir del 10 de febrero de 2020, python @ 2 se elimina de homebrew y esta respuesta no funcionará. Vea la respuesta anterior de @Rockallite, que funcionó perfectamente para mí.
Paul
Gracias por la actualización @Paul, marqué la respuesta anterior como correcta
poca
31

El caso para mí es que cuando instalo dependencias de una aplicación web de django, se estropea el entorno. Cuando escribo cd, muestra el mismo error.

El problema era la opensslbiblioteca, no puede encontrar las correctas.

Si está en Macintosh, puede escribir

ls /usr/local/Cellar/openssl

para ver todas las versiones,

brew switch openssl 1.0.XXXX

para elegir la versión disponible de openssl.

Entonces el error se fue :)

Bingyu Shen
fuente
55
one linerbash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Florent Roques
Trabajé después de usar la respuesta de @poca y luego la respuesta anterior
imsheth hace
0

Cuando importaría hashlib, vería un mensaje de error que indica que no se encontró hash md5.

Pude solucionar este problema desenlazando primero openssl: brew unlink openssl

Luego desinstalé python 2.7 usando MacPorts: sudo port uninstall python27

Luego instalé Python 2.7 usando MacPorts: sudo port install python27

Ahora importar hashlib funciona :)

usuario1766438
fuente
0

Simplemente desinstale python2

$ brew uninstall python@2

Si hay algún error:

$ brew uninstall --ignore-dependencies python@2

Ravi D
fuente