Python 3 'json' modülü aslında bozuk

Oct 02 2020

Bu soruyu Stack Overflow'da değil burada soruyorum çünkü MacOS'a özgü görünüyor. Oradaki pek çok cevap, kötü bir "json.py" modülünü aramayı işaret ediyor, ancak aşağıda böyle kötü bir modülün içe aktarılmadığını görebiliriz.

Python 3 kurulumunu nasıl "düzeltirim"?

$ 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

İşte bulunduğu yer:

$ which python3
/usr/local/bin/python3

Ben brew reinstall python3boşuna denedim .

Yanıtlar

benwiggy Oct 02 2020 at 21:14

Burada, biri Mojave üzerinde python 3.7.4 çalıştıran iki Mac'teki hataları yeniden oluşturamıyorum; ve 3.8.3'ü Big Sur'da çalıştıran. Python'u doğrudan python.org'daki paketlerden kurdum.

>>> json.dumps(d)
'{"a": 100, "b": 200}'
>>> print(json.__file__)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py

Gerekirse ikisi de "Clang 6.0" der.

Kurulumunuz bozuk olabilir ve python3'ü yeniden yüklemeniz gerekebilir. HomeBrew veya benzerini kullanıyorsanız, destek için onlarla iletişime geçmeniz gerekebilir.

CharneyKaye Oct 02 2020 at 21:24

Sanırım "glib, graphviz ve gts" ile daha sonra ilgileneceğim, ama benim için işin püf noktası Python 3'ün brew kurulumunu tamamen kaldırmaktı:

brew uninstall --ignore-dependencies python3

Ve şimdi işler normale döndü:

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