213
votes

"ERREUR: root: le code du hachage md5 n'a pas été trouvé" lors de l'utilisation des commandes hg mercurial

Lorsque j'essaie d'utiliser des commandes hg Mercurial sur la console, j'obtiens toujours cette erreur. J'ai installé Python en utilisant Homebrew et j'utilise Mac OS Catalina v. 10.15.1.

Toute référence serait appréciée. Voici l'erreur que j'obtiens:

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"

J'ai également essayé de suivre les instructions sur ce problème mais aucune des solutions ne semble fonctionner

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'


4 commentaires

Votre lien vers le problème 1 est manquant.


Cela ressemble à un problème Python: stackoverflow.com/questions/20399331/… ou stackoverflow.com/questions/41798118/...


Des solutions pour MacOS? J'ai essayé ces solutions mais aucune d'elles ne fonctionne. J'obtiens toujours la même erreur. Lorsque j'essaie de lier openssl au fur et à mesure que j'ai collé ma question, l'erreur est collée là-bas. J'ai aussi essayé d'exécuter ces 4 commandes mais rien ne s'est passé: 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 "


Curieusement, j'ai eu le même problème avec YCM sous Macvim et cette réponse a résolu mon problème.


11 Réponses :


98
votes

Réparé pour résoudre ce problème en dissociant d'abord openssl

brew reinstall python@2

Et puis réinstaller python

brew unlink openssl

J'ai également remarqué que lors de l'exécution de 'brew doctor', il y avait un avertissement lié à un dossier openssl trouvé dans / usr / local / include / node /. J'ai supprimé ce dossier avant d'exécuter les commandes ci-dessus (je ne sais pas si elles sont liées)


4 commentaires

Je n'avais pas de lien openssl mais la réinstallation de python l'a fait pour moi. Merci!


Je devais relier l'azur-cli avec de la bière


À partir du 10 février 2020, python @ 2 est supprimé de l'homebrew et cette réponse ne fonctionnera pas. Voir la réponse ci-dessus de @Rockallite, qui a parfaitement fonctionné pour moi.


Merci pour la mise à jour @Paul, j'ai marqué la réponse ci-dessus comme la bonne



695
votes

L'exécution de brew reinstall python@2 ne fonctionnait pas pour mes environnements virtuels Python 2.7 existants. À l'intérieur d'eux, il y avait encore ERROR:root:code for hash sha1 was not found erreurs.

J'ai rencontré ce problème après avoir exécuté la brew upgrade openssl . Et voici la solution:

d41d8cd98f00b204e9800998ecf8427e

...qui montre

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

Selon la version existante, exécutez:

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

...qui montre

$ brew switch openssl 1.0.2t

Après cela, exécutez la commande suivante dans un virtualenv Python 2.7:

1.0.2t

...qui montre

$ ls /usr/local/Cellar/openssl

Plus d'erreurs.


23 commentaires

Cela m'a aidé sur une mise à jour de mac catalina ou peut-être la bash -> zsh où des tonnes de choses comme celle-ci ont été brisées.


Je n'avais pas 1.0.2q mais faire la même chose avec 1.0.2r fonctionnait également


Merci, je n'aurais jamais compris ça. J'ai eu ce problème après avoir essayé d'installer pipx via homebrew


Oui. Cela fonctionne pour moi. J'ai passé des jours là-dessus et dans la peur de devoir réimaginer ma machine. J'avais essayé de réinstaller python @ 2 de nombreuses fois mais je ne pouvais toujours pas résoudre le problème. Celui-ci fonctionne définitivement. MacOS Mojave 10.14.6.


Des étapes impeccables.


Cela m'a aidé aussi, mais mon homebrew affirmait que j'avais 1.1.1f installé pour openssl en essayant "brew upgrade openssl". Cependant, le passage à la dernière version 1.0.x m'avait permis de continuer.


exécuter le commutateur de brassage openssl [version] l'a fait pour moi, pas besoin de la dernière commande


@FlorentRoques c'est parce que vous auriez eu la même version que l'exemple. Dans mon cas, ls /usr/local/Cellar/openssl renvoyé la version 1.0.2s donc j'ai dû exécuter le brew switch openssl 1.0.2s


works avait 2 installations openssl dans brew dont j'avais besoin pour compiler quelque chose ellse


Waouh Waouh Waouh! :-)


Merci! J'ai à la fois 1.0.2q et 1.0.2r dans le dossier et j'ai fait l'étape pour 1.0.2q. Ça marche!


Pouvez-vous expliquer un peu ce que fait l' brew switch ? J'ai essayé votre solution et tout fonctionne maintenant, mais lorsque openssl version commande de openssl version cela montre toujours que j'utilise LibreSSL 2.6.5. Je ne sais pas comment python récupère openssl 1.0.2 au lieu de LibreSSL dans mon système @Rockallite


Vous monsieur, méritez une médaille! Présenter clairement les étapes ici est vraiment utile. C'était 1.0.2s pour moi :)


Merci! Ce problème est survenu dans mon Zshell sur 10.15.4. J'ai vérifié openssl qui est 1.0.2s sur ma machine et le brew switch openssl 1.0.2s fait le travail.


Merci beaucoup! J'ai rencontré cette erreur lorsque gclient sync . L'openssl sur mon Mac est 1.0.2s. Je lance donc le brew switch openssl 1.0.2s .


Je veux donner une médaille à ce gars. Merci beaucoup pour l'aide.


Troisième fois en quelques mois, je suis sauvé par ça! :'RÉ


Désinstaller python, puis effacer le répertoire pyenv semblait le résoudre pour moi. rm -R ~/.pyenv


Alors maintenant, avec l'installation de zsh et Calalina, il n'y a pas de /usr/local/Cellar/openssl qu'est-ce qu'un junkie 2.7 à faire?


Je n'ai aucune idée de ce qui se passe, mais cela a fonctionné avec la version 1.0.2q! Merci!


Merci! J'ai eu cette erreur après la mise à jour de macOS. Catalina 10.15.6


Un moyen de doubler le vote? J'ai vu la même chose que @quozqzzu; 1.0.2s. Merci!


Cela a fonctionné pour moi, dans mon cas, la version openssl était 1.1.1h , donc la commande à corriger était le brew switch openssl 1.1.1h



53
votes

Le cas pour moi est que lorsque j'installe les dépendances d'une application web django, cela gâche l'environnement. Lorsque je tape cd , cela montre la même erreur.

Le problème était la bibliothèque openssl , elle ne trouve pas les bonnes.

Si vous êtes sur Macintosh, vous pouvez taper

ls /usr/local/Cellar/openssl

pour voir toutes les versions,

brew switch openssl 1.0.XXXX

pour choisir la version openssl disponible.

Ensuite, l'erreur a disparu :)


3 commentaires

un liner bash ls /usr/local/Cellar/openssl | xargs brew switch openssl


J'ai travaillé après avoir utilisé la réponse de @poca, puis la réponse ci-dessus


Merci beaucoup, vous êtes une bouée de sauvetage - cela a finalement fonctionné après s'être battu avec lui pendant plus d'une heure.



0
votes

Lorsque j'importais hashlib, je voyais un message d'erreur indiquant que le hachage md5 n'a pas été trouvé.

J'ai pu résoudre ce problème en dissociant d'abord openssl: brew unink openssl

Ensuite, j'ai désinstallé python 2.7 en utilisant MacPorts: sudo port uninstall python27

Ensuite, j'ai installé python 2.7 en utilisant MacPorts: sudo port install python27

Maintenant, l'importation de hashlib fonctionne :)


0 commentaires

29
votes

Désinstallez simplement python2

$ brew uninstall python@2

S'il y a une erreur:

$ brew uninstall --ignore-dependencies python@2


1 commentaires

cela a fonctionné pour moi!



3
votes

J'ai eu ce problème récemment (2020, mai) avec l'interface de ligne de commande GCP de Google. Il fonctionne également sur le Python 2.7 obsolète.

Il s'agit d'un problème d'installation de Python 2 en panne. mBrew n'installe plus correctement Python 2 avec élégance, car personne ne se soucie d'abondonware.

Conda installe toujours Python 2 dans un environnement; Je l'ai fait.


0 commentaires

0
votes

Mon problème était que plusieurs versions de python étaient installées (python était toujours alias python2 mais je voulais que pip utilise python3). j'ai aussi un bin python3 installé sur mon système

# use pip with python3
$ python3 -m pip install fish

voirGérer plusieurs versions de Python et PIP? pour les détails


0 commentaires

2
votes

La solution suivante a fonctionné pour moi sur MacOS Catalina:

  1. Dissocier openssl
brew tap-new <user>/homebrew-python2
brew extract python@2 <user>/homebrew-python2
brew reinstall /usr/local/Homebrew/Library/Taps/<user>/homebrew-python2/Formula/python@2.7.17.rbl
  1. Réinstaller python 2.7 (supprimé de homebrew et ne peut pas être installé via brew install python@2 )
brew unlink openssl


1 commentaires

J'ai fait la même chose, mais à la place, à l'étape 2), j'ai brew remove python@2 :) macOS Catalina embarque Python 2.7 intégré et cela semblait moins problématique que de s'en remettre directement. Pour moi, le support de python via brew semblait toujours causer des problèmes quelque part dans ce passé xD



0
votes

Sur macOS Mojave (10.14.6), cela a fonctionné pour moi:

  • Enregistrez le fichier sous python@2.rb dans votre répertoire actuel.
  • brew réinstaller python@2.rb
  • J'utilisais des environnements virtuels, j'ai donc dû les relier à /usr/local/bin/python et /usr/local/bin/pip pour les binaires python et pip .

0 commentaires

0
votes

Après avoir installé openssl j'ai eu le même problème. Cette réponse ne m'a pas aidé, mais après la liaison manuelle de libcrypto.1.1.dylib et libssl.1.1.dylib tout a commencé à fonctionner. Dans mon cas, c'était:

ln -s /usr/local/opt/openssl/lib/libcrypto.1.1.dylib /usr/local/lib
ln -s /usr/local/opt/openssl/lib/libssl.1.1.dylib /usr/local/lib


0 commentaires

1
votes

Mon problème était d'installer pyenv et de pointer vers une ancienne version de python 2

Désinstaller python @ 2 (python2 était EOL depuis le 1er janvier 2020)

$ pyenv versions
  system
* 2.7.12 (set by /Users/admin/.python-version)
  3.4.5
  3.7.7

$ pyenv local system
$ pyenv global system

puis

$ brew uninstall python@2
Uninstalling /usr/local/Cellar/python@2/2.7.15_1... (4,169 files, 76.0MB)


0 commentaires