hg mercurial 명령을 사용할 때“ERROR : root : code for hash md5를 찾을 수 없습니다”


102

hg콘솔에서 Mercurial 명령 을 사용하려고 할 때이 오류가 계속 발생합니다. Homebrew를 사용하여 Python을 설치했으며 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 "export 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과 동일한 작업을 수행했습니다
Matt Coady

2
예. 이것은 나를 위해 작동합니다. 나는 이것에 며칠을 보냈고 내 컴퓨터의 이미지를 다시 만들어야 할까봐 두려워했습니다. python @ 2를 여러 번 다시 설치하려고 시도했지만 여전히 문제를 해결할 수 없습니다. 이것은 확실히 작동합니다. 맥 OS 모하비 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

그런 다음 파이썬다시 설치하십시오.

brew reinstall python@2

또한 'brew doctor'를 실행할 때 / usr / local / include / node /에있는 openssl 폴더와 관련된 경고가 있음을 알았습니다. 위 명령을 실행하기 전에이 폴더를 삭제했습니다 (관련이 있는지 확실하지 않음)


2
나는 openssl을 연결하지 않았지만 파이썬을 다시 설치하면 나를 위해 그것을했다. 감사!
chrysillo

생명의 은인-감사합니다. Google Cloud SDK 설치와 비슷한 문제가 발생하여 문제가 해결되었습니다.
jonhendrix

나는 azure-cli를 brew와 다시 연결해야했다
chaosguru

2020 년 2 월 10 일부터 python @ 2는 homebrew에서 제거되며이 답변은 작동하지 않습니다. @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
Florent Roques

내가 @poca의 대답을 사용하고 대답 위 후 근무
imsheth

0

hashlib를 가져올 때 hash md5를 찾을 수 없다는 오류 메시지가 표시됩니다.

먼저 openssl을 연결 해제하여이 문제를 해결할 수있었습니다. brew unlink openssl

그런 다음 MacPorts를 사용하여 python 2.7을 제거했습니다. sudo port uninstall python27

그런 다음 MacPorts를 사용하여 python 2.7을 설치했습니다. sudo port install python27

이제 hashlib 가져 오기가 작동합니다 :)


0

python2를 제거하십시오.

$ brew uninstall python@2

오류가있는 경우 :

$ brew uninstall --ignore-dependencies python@2

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.