Mô-đun Python 3 'json' thực sự bị hỏng

Oct 02 2020

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

benwiggy Oct 02 2020 at 21:14

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ợ.

CharneyKaye Oct 02 2020 at 21:24

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}'