«ОШИБКА: root: код для хэша md5 не найден» при использовании любых команд hg mercurial

103

При попытке использовать любые 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"
Poca
источник
1
Ваша ссылка на проблему 1 отсутствует.
UuDdLrLrSs
Это звучит как проблема Python: stackoverflow.com/questions/20399331/… или stackoverflow.com/questions/41798118/…
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 "export CPPFLAGS =" - I/usr/local/opt/openssl@1.1/include "export PKG_CONFIG_PATH =" / usr/local/opt/openssl@1.1/lib/pkgconfig "
poca

Ответы:

327

Запуск 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

Больше ошибок нет.

Rockallite
источник
10
Это помогло мне в обновлении Mac Catalina или, может быть, в bash -> zsh, где множество таких вещей было сломано.
NathanQ
3
У меня не было 1.0.2q, но то же самое делалось с 1.0.2r
Matt Coady
2
Да. Это работает для меня. Я потратил несколько дней на это и в страхе перед тем, как переизобразить мою машину. Я пытался переустановить Python @ 2 много раз, но все еще не мог решить проблему. Это однозначно работает. MacOS Mojave 10.14.6.
hb5fa
1
черт возьми, это работает. проводил дни , пытаясь из тысячи решений
ariezona
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

Я также заметил, что при запуске «brew doctor» было предупреждение, относящееся к папке openssl, которая находится в / usr / local / include / node /. Я удалил эту папку перед запуском вышеуказанных команд (не уверен, что связан)

Poca
источник
2
У меня не было связи с openssl, но переустановка python сделала это для меня. Спасибо!
Chrysillo
Спасатель - спасибо. У меня возникли похожие проблемы с установкой Google Cloud SDK, и это решило проблему.
Джонхендрикс
Мне пришлось заново связать лазурь с пивом
хаосгуру
По состоянию на 10 февраля 2020 года python @ 2 удален из homebrew, и этот ответ не будет работать. Посмотрите приведенный выше ответ @Rockallite, который отлично сработал для меня.
Пол
Спасибо за обновление @Paul, я пометил вышеуказанный ответ как правильный
Poca
31

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

Проблема была в opensslбиблиотеке, она не может найти правильные.

Если вы используете Macintosh, вы можете ввести

ls /usr/local/Cellar/openssl

чтобы увидеть все версии,

brew switch openssl 1.0.XXXX

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

Тогда ошибка исчезла :)

Бингю Шен
источник
5
один лайнерbash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Florent Roques
Работал после того, как я использовал ответ @poca, а затем ответ выше
imsheth
0

Когда я импортировал hashlib, я видел сообщение об ошибке, в котором говорилось, что hash md5 не найден.

Я смог решить эту проблему, сначала отсоединив openssl: brew unlink openssl

Затем я удалил Python 2.7 с помощью MacPorts: sudo port uninstall python27

Затем я установил Python 2.7 с помощью MacPorts: sudo port установить python27

Теперь импорт hashlib работает :)

user1766438
источник
0

Просто удалите python2

$ brew uninstall python@2

Если есть какая-либо ошибка:

$ brew uninstall --ignore-dependencies python@2

Рави Д
источник