“ERRO: root: o código para o hash md5 não foi encontrado” ao usar qualquer comando hg mercurial

103

Ao tentar usar qualquer hgcomando Mercurial no console, continuo recebendo esse erro. Instalei o Python usando o Homebrew e estou executando o Mac OS Catalina v. 10.15.1.

Qualquer referência seria apreciada. Aqui está o erro que estou recebendo:

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'

Eu também tentei seguir as instruções sobre esse problema, mas nenhuma das soluções 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
fonte
11
Seu link para o problema 1 está ausente.
UuDdLrLrSs 12/12
Isso soa como um problema do Python: stackoverflow.com/questions/20399331/… ou stackoverflow.com/questions/41798118/…
UuDdLrLrSs 12/12/19
Alguma solução para o MacOS? Eu tentei essas soluções, mas nenhuma delas está funcionando. Eu continuo recebendo o mesmo erro. Quando tento vincular o openssl conforme colei na minha pergunta, recebo o erro colado lá. Também tentei executar esses 4 comandos, mas nada aconteceu: 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

Respostas:

325

A execução brew reinstall python@2não funcionou nos meus ambientes virtuais existentes do Python 2.7. Dentro deles ainda havia ERROR:root:code for hash sha1 was not founderros.

Encontrei esse problema depois de executar brew upgrade openssl. E aqui está a correção:

$ ls /usr/local/Cellar/openssl

... o que mostra

1.0.2t

De acordo com a versão existente, execute:

$ brew switch openssl 1.0.2t

... o que mostra

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

Depois disso, execute o seguinte comando em um virtualenv do Python 2.7:

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

... o que mostra

d41d8cd98f00b204e9800998ecf8427e

Sem mais erros.

Rockallite
fonte
10
Isso me ajudou em uma atualização do mac catalina ou talvez no bash -> zsh, onde toneladas de coisas como essa foram quebradas.
NathanQ 28/02
3
Eu não tinha 1.0.2q, mas fazer o mesmo com 1.0.2r também funcionou
Matt Coady
2
Sim. Isso funciona para mim. Passei dias nisso e com medo de ter que reimaginar minha máquina. Eu tentei reinstalar o python @ 2 várias vezes, mas ainda não consegui resolver o problema. Este definitivamente funciona. MacOS Mojave 10.14.6.
hb5fa 12/03
11
inferno sim, funciona. passou dias experimentando milhares de soluções
ariezona 23/03
11
@FlorentRoques é porque você teria a mesma versão do exemplo. No meu caso, ls /usr/local/Cellar/opensslretornei, 1.0.2sentão eu precisava correrbrew switch openssl 1.0.2s
Jaybeecave
86

Consertado para corrigir isso primeiro desvinculando openssl

brew unlink openssl

E depois reinstalar o python

brew reinstall python@2

Também notei que, ao executar o 'brew doctor', havia um aviso relacionado a uma pasta openssl encontrada em / usr / local / include / node /. Excluí esta pasta antes de executar os comandos acima (não tenho certeza se relacionados)

poca
fonte
2
Eu não tinha o openssl vinculado, mas a reinstalação do python fez isso por mim. Obrigado!
Chrysillo
Lifesaver - obrigado. Eu estava tendo problemas semelhantes com a instalação do Google Cloud SDK e isso resolveu o problema.
jonhendrix 25/02
Eu tive que vincular novamente o azure-cli com o brew
chaosguru 12/03
A partir de 10 de fevereiro de 2020, o python @ 2 é removido do homebrew e esta resposta não funciona. Veja a resposta acima de @Rockallite, que funcionou perfeitamente para mim.
Paul
Obrigado pela atualização @Paul, marquei a resposta acima como a correta
poca
30

O meu caso é que, quando instalo dependências de um aplicativo da web django, ele atrapalha o ambiente. Quando digito cd, ele mostra o mesmo erro.

O problema era a opensslbiblioteca, não é possível encontrar os corretos.

Se você estiver no Macintosh, poderá digitar

ls /usr/local/Cellar/openssl

para ver todas as versões,

brew switch openssl 1.0.XXXX

para escolher a versão openssl disponível.

Então o erro se foi :)

Bingyu Shen
fonte
4
um forrobash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Florent Roques
Trabalhei depois de usar a resposta da @poca e depois a resposta acima
imsheth
0

Ao importar o hashlib, recebia uma mensagem de erro informando que o hash md5 não foi encontrado.

Consegui resolver esse problema primeiro desvinculando o openssl: brew unlink openssl

Então eu desinstalei o python 2.7 usando o MacPorts: sudo port uninstall python27

Então eu instalei o python 2.7 usando o MacPorts: sudo port install python27

Agora a importação de hashlib funciona :)

user1766438
fonte
0

Basta desinstalar o python2

$ brew uninstall python@2

Se houver algum erro:

$ brew uninstall --ignore-dependencies python@2

Ravi D
fonte