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