Python 3 'json' modülü aslında bozuk
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
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.
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}'