"ПОМИЛКА: root: код для хеша md5 не знайдено" при використанні будь-яких hg-mercurial команд


102

Коли я намагаюся використовувати будь-які hgкоманди Mercurial на консолі, я постійно отримую цю помилку. Я встановив Python за допомогою Homebrew і запускаю Mac OS Catalina v. 10.15.1.

Будь-яка посилання буде вдячна. Ось помилка, яку я отримую:

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'

Я також спробував дотримуватися інструкцій з цього питання, але, здається, жодне з рішень не працює

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
Відсутнє посилання на номер 1.
UuDdLrLrSs


Будь-які рішення для MacOS? Я намагався ці рішення, але жодне з них не працює. Я продовжую отримувати ту ж помилку. Коли я намагаюся зв’язати openssl, як я вставив у своєму питанні, я отримую помилку, вставлену там. Я також спробував запустити ці 4 команди, але нічого не сталося: echo 'export PATH = "/ usr/local/opt/openssl@1.1/bin: $ PATH"' >> ~ / .zshrc export LDFLAGS = "- L / usr / local /opt/openssl@1.1/lib»экспорт CPPFLAGS = "- I/usr/local/opt/openssl@1.1/include" експорт PKG_CONFIG_PATH = "/ usr/local/opt/openssl@1.1/lib/pkgconfig"
Poca

Відповіді:


323

Запуск brew reinstall python@2не працював у моїй існуючій віртуальній середовищі Python 2.7. Всередині них ще були ERROR:root:code for hash sha1 was not foundпомилки.

Я зіткнувся з цією проблемою після того, як побіг brew upgrade openssl. І ось виправлення:

$ ls /usr/local/Cellar/openssl

... що показує

1.0.2t

Відповідно до існуючої версії, запустіть:

$ brew switch openssl 1.0.2t

... що показує

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

Після цього запустіть таку команду в Python 2.7 virtualenv:

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

... що показує

d41d8cd98f00b204e9800998ecf8427e

Більше помилок більше немає.


10
Це допомогло мені оновити mac catalina або, можливо, bash -> zsh, де було зламано багато подібних речей.
NathanQ

3
У мене не було 1.0.2q, але те ж саме з 1.0.2r також працювало
Метт Коді

2
Так. Це працює для мене. Я витратив цілі дні на це, і боячись переобразувати свою машину. Я намагався повторно встановити python @ 2 чимало разів, але все-таки не зміг виправити проблему. Цей, безумовно, працює. MacOS Mojave 10.14.6.
hb5fa

1
чорт так, це працює. провів дні, пробуючи тисячі рішень
Арізона,

1
@FlorentRoques це тому, що ви мали б ту саму версію, як приклад. У моєму випадку ls /usr/local/Cellar/opensslповернувся, 1.0.2sтому мені потрібно було бігтиbrew switch openssl 1.0.2s
Jaybeecave

86

Вдалося виправити це, спочатку від’єднавши openssl

brew unlink openssl

А потім перевстановлення python

brew reinstall python@2

Я також зауважив, що під час запуску "варив лікар" було попередження, пов’язане з папкою openssl, знайденою в / usr / local / include / node /. Я видалив цю папку перед запуском вищевказаних команд (не впевнений, що пов’язано)


2
У мене не було зв'язаних openssl, але переустановка python зробила це для мене. Дякую!
chrysillo

Рятувальник - спасибі. У мене виникли подібні проблеми з установкою Google Cloud SDK, і це вирішило цю проблему.
jonhendrix

Мені довелося зв’язати лазур-клі з
пивом

З 10 лютого 2020 року python @ 2 видалено з домашньої мови та ця відповідь не буде працювати. Дивіться вищевказану відповідь від @Rockallite, яка прекрасно працювала для мене.
Павло

Дякую за оновлення @Paul, я вказав цю відповідь як правильну
poca

30

Для мене справа в тому, що коли я встановлюю залежності веб-програми django, це заплутує середовище. Коли я набираю cd, вона показує ту саму помилку.

Проблемою була opensslбібліотека, вона не може знайти правильних.

Якщо ви перебуваєте на Macintosh, можете ввести текст

ls /usr/local/Cellar/openssl

щоб побачити всі версії,

brew switch openssl 1.0.XXXX

вибрати доступну версію openssl.

Тоді помилка зникла :)


4
один лайнерbash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Флорент Рокес

Працював після того, як я використав відповідь @poca, а потім вище відповідь
imsheth

0

Коли я імпортую хешліб, я побачив би повідомлення про помилку, в якому зазначається, що хеш md5 не знайдено.

Мені вдалося виправити цю проблему, спочатку від’єднавши openssl: brew unlink openssl

Тоді я видалив python 2.7 за допомогою MacPorts: порт sudo видалити python27

Тоді я встановив python 2.7 за допомогою MacPorts: sudo port install python27

Зараз імпорт працює хешліб :)


0

Просто видаліть python2

$ brew uninstall python@2

Якщо є помилка:

$ brew uninstall --ignore-dependencies python@2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.