Mô-đun Python 3 'json' thực sự bị hỏng
Tôi đang hỏi câu hỏi này ở đây chứ không phải trên Stack Overflow vì nó có vẻ là dành riêng cho MacOS. Nhiều câu trả lời ở đó chỉ ra việc tìm kiếm mô-đun "json.py" không hợp lệ, tuy nhiên chúng tôi có thể thấy từ phần sau rằng không có mô-đun xấu nào như vậy đang được nhập.
Làm cách nào để "sửa" cài đặt 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
Đây là nơi nó được đặt:
$ which python3
/usr/local/bin/python3
Tôi đã thử một brew reinstall python3cách vô ích.
Trả lời
Tôi không thể tạo lại các lỗi trên hai máy Mac ở đây, một máy chạy python 3.7.4 trên Mojave; và một chạy 3.8.3 trên Big Sur. Tôi đã cài đặt python trực tiếp từ các gói trên 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
Cả hai đều nói "Clang 6.0", nếu điều đó có liên quan.
Có thể cài đặt của bạn bị hỏng và bạn cần cài đặt lại python3. Nếu bạn đang sử dụng HomeBrew hoặc tương tự, thì bạn có thể cần liên hệ với họ để được hỗ trợ.
Vâng, tôi cho rằng tôi sẽ xử lý "glib, graphviz và gts" sau, nhưng mẹo đối với tôi là xóa hoàn toàn cài đặt bia của Python 3:
brew uninstall --ignore-dependencies python3
Và bây giờ mọi thứ đã trở lại bình thường:
$ 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}'