Das Python 3 'json'-Modul ist tatsächlich beschädigt
Ich stelle diese Frage hier und nicht bei Stack Overflow, da sie MacOS-spezifisch zu sein scheint. Viele Antworten dort deuten auf die Suche nach einem fehlerhaften "json.py" -Modul hin. Aus dem Folgenden geht jedoch hervor, dass kein solches fehlerhaftes Modul importiert wird.
Wie "repariere" ich die Python 3-Installation?
$ 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
Hier ist, wo es sich befindet:
$ which python3
/usr/local/bin/python3
Ich habe brew reinstall python3es ohne Erfolg versucht .
Antworten
Ich kann die Fehler hier nicht auf zwei Macs reproduzieren, von denen einer Python 3.7.4 auf Mojave ausführt. und eine mit 3.8.3 auf Big Sur. Ich habe Python direkt aus den Paketen auf python.org installiert.
>>> json.dumps(d)
'{"a": 100, "b": 200}'
>>> print(json.__file__)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py
Beide sagen "Clang 6.0", wenn das relevant ist.
Möglicherweise ist Ihre Installation beschädigt und Sie müssen python3 neu installieren. Wenn Sie HomeBrew oder ähnliches verwenden, müssen Sie sich möglicherweise an sie wenden, um Unterstützung zu erhalten.
Nun, ich nehme an, ich werde mich später mit "glib, graphviz und gts" befassen, aber was der Trick für mich war, war, die Brew-Installation von Python 3 vollständig zu entfernen:
brew uninstall --ignore-dependencies python3
Und jetzt sind die Dinge wieder normal:
$ 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}'