“ ข้อผิดพลาด: root: รหัสสำหรับ hash md5 ไม่พบ” เมื่อใช้คำสั่งปรอทปรอทใด ๆ


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"

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 ส่งออก 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

คำตอบ:


325

การทำงาน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

หลังจากนั้นให้รันคำสั่งต่อไปนี้ใน virtualenv Python 2.7:

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

... ซึ่งแสดงให้เห็น

d41d8cd98f00b204e9800998ecf8427e

ไม่มีข้อผิดพลาดเพิ่มเติม


10
สิ่งนี้ช่วยฉันในการอัพเดต cat catina หรืออาจทุบตี -> zsh ที่สิ่งต่าง ๆ เช่นนี้แตก
NathanQ

3
ฉันไม่ได้มี 1.0.2q แต่ทำเช่นเดียวกันกับ 1.0.2r ยังใช้งานได้
Matt Coady

2
ใช่. มันใช้งานได้สำหรับฉัน ฉันใช้เวลาหลายวันในการทำสิ่งนี้และกลัวว่าจะต้องทำรูปเครื่องจักรของฉันใหม่ ฉันพยายามติดตั้ง python อีกครั้งหลายครั้ง แต่ก็ยังไม่สามารถแก้ไขปัญหาได้ อันนี้ใช้ได้ผลแน่นอน 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

จากนั้นติดตั้งไพ ธ อนใหม่

brew reinstall python@2

ฉันยังสังเกตเห็นว่าเมื่อเรียกใช้ 'ชงหมอ' มีคำเตือนเกี่ยวกับโฟลเดอร์ openssl ที่พบใน / usr / local / include / node / ฉันลบโฟลเดอร์นี้ก่อนที่จะเรียกใช้คำสั่งข้างต้น (ไม่แน่ใจว่าเกี่ยวข้อง)


2
ฉันไม่ได้ทำการเชื่อมโยง openssl แต่การติดตั้งหลามก็ทำได้สำหรับฉัน ขอบคุณ!
chrysillo

ช่วยชีวิต - ขอบคุณ ฉันประสบปัญหาคล้ายกันกับการติดตั้ง Google Cloud SDK และสิ่งนี้สามารถแก้ไขปัญหาได้
jonhendrix

ฉันต้องเชื่อมโยง Azure-Cli กับชง
chaosguru

ตั้งแต่วันที่ 10 ก.พ. 2020, python @ 2 จะถูกลบออกจาก homebrew และคำตอบนี้จะไม่ทำงาน ดูคำตอบข้างต้นโดย @Rockallite ซึ่งทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน
พอล

ขอบคุณสำหรับการอัพเดท @Paul ฉันทำเครื่องหมายคำตอบข้างต้นว่าเป็นคำที่ถูกต้อง
poca

30

กรณีของฉันคือเมื่อฉันติดตั้งการพึ่งพาของ django web app มันทำให้สภาพแวดล้อมแย่ลง เมื่อฉันพิมพ์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 's แล้วข้างต้นคำตอบ
imsheth

0

เมื่อฉันจะนำเข้า hashlib ฉันจะเห็นข้อความแสดงข้อผิดพลาดที่ระบุว่าไม่พบ hash md5

ฉันสามารถแก้ไขปัญหานี้ได้โดยการยกเลิกการเชื่อมโยง openssl แรก: brew unlink openssl

จากนั้นฉันถอนการติดตั้ง python 2.7 โดยใช้ MacPorts: sudo port ถอนการติดตั้ง python27

จากนั้นฉันติดตั้ง python 2.7 โดยใช้ MacPorts: sudo port install python27

ตอนนี้นำเข้า hashlib ใช้งานได้ :)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.