โมดูล Python 3 'json' เสียหายจริง
ฉันถามคำถามนี้ที่นี่ไม่ใช่ใน Stack Overflow เพราะดูเหมือนว่าจะเป็นเฉพาะ MacOS คำตอบมากมายในที่นั้นชี้ไปที่การค้นหาโมดูล "json.py" ที่ไม่ดี แต่เราจะเห็นได้จากสิ่งต่อไปนี้ว่าไม่มีการนำเข้าโมดูลที่ไม่ดีดังกล่าว
ฉันจะ "แก้ไข" การติดตั้ง Python 3 ได้อย่างไร?
$ python3
Python 3.7.7 (default, Mar 10 2020, 15:43:33)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> d = {'a' : 100, 'b' : 200}
>>> json.dumps(d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'json' has no attribute 'dumps'
>>> print(json.__file__)
None
ที่นี่ตั้งอยู่:
$ which python3
/usr/local/bin/python3
ฉันพยายามที่brew reinstall python3จะไม่มีประโยชน์
คำตอบ
ฉันไม่สามารถสร้างข้อผิดพลาดบน Mac สองเครื่องได้ที่นี่หนึ่งเครื่องใช้ python 3.7.4 บน Mojave และอีกหนึ่งรัน 3.8.3 บน Big Sur ฉันติดตั้ง python โดยตรงจากแพ็คเกจบน python.org
>>> json.dumps(d)
'{"a": 100, "b": 200}'
>>> print(json.__file__)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py
ทั้งสองพูดว่า "เสียงดัง 6.0" หากเกี่ยวข้องกัน
อาจเป็นไปได้ว่าการติดตั้งของคุณเสียหายและคุณต้องติดตั้ง python3 ใหม่ หากคุณใช้ HomeBrew หรือคล้ายกันคุณอาจต้องติดต่อพวกเขาเพื่อขอความช่วยเหลือ
ฉันคิดว่าฉันจะจัดการกับ "glib, graphviz และ gts" ในภายหลัง แต่เคล็ดลับสำหรับฉันคือการลบการติดตั้งเบียร์ของ Python 3 ทั้งหมด:
brew uninstall --ignore-dependencies python3
และตอนนี้ทุกอย่างกลับมาเป็นปกติ:
$ python3
Python 3.7.3 (default, Apr 24 2020, 18:51:23)
[Clang 11.0.3 (clang-1103.0.32.62)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> d = {'a' : 100, 'b' : 200}
>>> json.dumps(d)
'{"a": 100, "b": 200}'