Поврежден внутренний json-модуль macOS Python 3.7.7; как исправить?

#python #json #python-3.x #macos #python-3.7

#python #json #python-3.x #macos #python-3.7

Вопрос:

Я использую macOS Catalina 10.15.7 и открыл обычный сеанс терминала. Да, я запускаю tmux в своей оболочке, но это никогда не было проблемой, пока внезапно в середине моего рабочего дня вчера.

Единственное событие, о котором я могу думать, которое соотносится во времени с началом проблемы, — это момент использования моей IDE (IntelliJ IDEA, в первую очередь Java-проект с некоторыми операционными инструментами, написанными на Python) и неуклюже выбранное «установить», когда утверждалось, что эти модули не были найдены — правильным шагом было бы просто установитьукажите IDE на интерпретатор Python 3.7, что является довольно стандартной частью проверки проекта на компьютере.

Многие ответы там указывают на поиск плохого «json.py » модуль однако из следующего мы можем видеть, что такой плохой модуль не импортируется.

Как мне «исправить» установку 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
  

Вот где он находится:

 $ which python3
/usr/local/bin/python3
  

Я считаю, что это подтверждает мою память о том, что он был установлен через brew :

 $ brew uninstall python3
Error: Refusing to uninstall /usr/local/Cellar/python/3.7.7
because it is required by glib, graphviz and gts, which are currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies python3
  

Тем не менее, я пробовал brew reinstall python3 безрезультатно.

Комментарии:

1. Предполагается json , что он встроенный. Вы находитесь в какой conda -то среде? Если да, мой совет — начать с нового.

2. Файл python не вызывается json.py — если бы это было так, то это появилось бы в моей последней команде

3. Я добавлю детали среды в свой пост. AFAIK, это просто macOS. Это работало номинально и, по-видимому, сломалось из ниоткуда.

4. можете ли вы добавить вывод dir(json) и json.__file__ ?

5. И если вы это сделаете import imp,json , и тогда imp.find_module("json") , какой путь возвращается?

Ответ №1:

Ну, я полагаю, я разберусь с «glib, graphviz и gts» позже, но то, что помогло мне, заключалось в том, чтобы полностью удалить установку brew для Python 3:

 brew uninstall --ignore-dependencies python3
  

И теперь все возвращается к нормальной жизни:

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