Không thể tìm thấy ERROR: root: mã cho hàm băm md5 khi sử dụng bất kỳ lệnh hg mercurial nào


103

Khi cố gắng sử dụng bất kỳ hglệnh Mercurial nào trên bàn điều khiển, tôi tiếp tục gặp lỗi này. Tôi đã cài đặt Python bằng Homebrew và tôi đang chạy Mac OS Catalina v. 10.15.1.

Bất kỳ tài liệu tham khảo sẽ được đánh giá cao. Đây là lỗi tôi nhận được:

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'

Tôi cũng đã thử làm theo hướng dẫn về vấn đề này nhưng không có giải pháp nào có vẻ hiệu quả

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
Liên kết của bạn đến vấn đề 1 bị thiếu.
UuDdLrLrSs

Điều này nghe có vẻ như là một vấn đề về Python: stackoverflow.com/questions/20399331/ trên hoặc stackoverflow.com/questions/41798118/
mẹo

Bất kỳ giải pháp cho MacOS? Tôi đã thử các giải pháp này nhưng không ai trong số họ đang làm việc. Tôi tiếp tục nhận được cùng một lỗi. Khi tôi cố gắng liên kết openssl khi tôi dán vào câu hỏi của mình, tôi nhận được lỗi dán ở đó. Tôi cũng đã thử chạy 4 lệnh này nhưng không có gì xảy ra: echo 'export PATH = "/ usr/local/opt/openssl@1.1/bin: $ PATH"' >> ~ / .zshrc export LDFLAGS = "- L / usr / local /opt/openssl@1.1/lib" CPPFLAGS xuất khẩu = "- I/usr/local/opt/openssl@1.1/include" xuất khẩu PKG_CONFIG_PATH = "/ usr/local/opt/openssl@1.1/lib/pkgconfig"
poca

Câu trả lời:


325

Chạy brew reinstall python@2không hoạt động cho môi trường ảo Python 2.7 hiện tại của tôi. Bên trong họ vẫn còn ERROR:root:code for hash sha1 was not foundlỗi.

Tôi gặp phải vấn đề này sau khi tôi chạy brew upgrade openssl. Và đây là cách khắc phục:

$ ls /usr/local/Cellar/openssl

... cho thấy

1.0.2t

Theo phiên bản hiện có, chạy:

$ brew switch openssl 1.0.2t

... cho thấy

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

Sau đó, chạy lệnh sau trong virtualenv Python 2.7:

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

... cho thấy

d41d8cd98f00b204e9800998ecf8427e

Không còn lỗi nữa.


10
Điều này đã giúp tôi cập nhật mac catalina hoặc có thể là bash -> zsh nơi hàng tấn thứ như thế này bị hỏng.
NathanQ

3
Tôi không có 1.0.2q nhưng làm tương tự với 1.0.2r cũng hoạt động
Matt Coady

2
Đúng. Điều này làm việc cho tôi. Tôi đã dành nhiều ngày cho việc này và sợ phải hình ảnh lại máy của tôi. Tôi đã cố cài đặt lại python @ 2 nhiều lần nhưng vẫn không thể khắc phục được sự cố. Điều này chắc chắn hoạt động. MacOS Mojave 10.14.6.
hb5fa

1
chết tiệt, nó hoạt động. đã dành nhiều ngày để thử hàng ngàn giải pháp
ariezona

1
@FlorentRoques đó là vì bạn sẽ có cùng phiên bản với ví dụ. Trong trường hợp của tôi ls /usr/local/Cellar/openssltrở lại 1.0.2svì vậy tôi cần phải chạybrew switch openssl 1.0.2s
Jaybeecave

86

Quản lý để khắc phục điều này bằng cách mở liên kết đầu tiên

brew unlink openssl

Và sau đó cài đặt lại python

brew reinstall python@2

Tôi cũng nhận thấy rằng khi chạy 'brew Doctor', có một cảnh báo liên quan đến thư mục openssl được tìm thấy trong / usr / local / include / node /. Tôi đã xóa thư mục này trước khi chạy các lệnh trên (không chắc chắn nếu có liên quan)


2
Tôi đã không có openssl liên kết nhưng cài đặt lại python đã làm điều đó cho tôi. Cảm ơn!
chrysillo

Phao cứu sinh - cảm ơn. Tôi đã gặp vấn đề tương tự với việc cài đặt Google Cloud SDK và điều này đã giải quyết được vấn đề.
jonhendrix

Tôi đã phải đọc lại azure-cli với brew
chaosguru

Kể từ ngày 10 tháng 2 năm 2020, python @ 2 đã bị xóa khỏi homebrew và câu trả lời này sẽ không hoạt động. Xem câu trả lời trên của @Rockallite, hoạt động hoàn hảo với tôi.
Paul

Cảm ơn bản cập nhật @Paul, tôi đã đánh dấu câu trả lời trên là câu trả lời đúng
poca

30

Trường hợp đối với tôi là khi tôi cài đặt các phụ thuộc của ứng dụng web django, nó làm xáo trộn môi trường. Khi tôi gõcd , nó hiển thị cùng một lỗi.

Vấn đề là openssl thư viện, nó không thể tìm đúng.

Nếu bạn đang dùng Macintosh, bạn có thể gõ

ls /usr/local/Cellar/openssl

để xem tất cả các phiên bản,

brew switch openssl 1.0.XXXX

để chọn phiên bản openssl có sẵn.

Sau đó, lỗi đã biến mất :)


4
một lớp lótbash ls /usr/local/Cellar/openssl | xargs brew switch openssl
Florent Roques

Làm việc sau khi tôi sử dụng câu trả lời của @poca và sau đó là câu trả lời
imsheth

0

Khi tôi nhập hashlib, tôi sẽ thấy một thông báo lỗi cho biết băm md5 không được tìm thấy.

Tôi đã có thể khắc phục vấn đề này bằng cách hủy liên kết openssl đầu tiên: brew unlink openssl

Sau đó, tôi gỡ cài đặt python 2.7 bằng MacPorts: sudo port gỡ cài đặt python27

Sau đó, tôi đã cài đặt python 2.7 bằng MacPorts: sudo port cài đặt python27

Hiện đang nhập hashlib hoạt động :)


0

Chỉ cần gỡ cài đặt python2

$ brew uninstall python@2

Nếu có lỗi:

$ brew uninstall --ignore-dependencies python@2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.