Brew python3 внезапно перестал работать на MacO

У меня были python (это был python2) и python3, установленные на моей Mac OS High Sierra. Я делал несколько установок, в которых я работал:

brew install automake
brew install doxygen
brew install ant

и во время этих процессов мое пиво тоже должно быть обновлено. И вот я понял, что python3, который отлично работал последние несколько месяцев, просто исчез.

> brew update
Already up-to-date.

> brew install python
Error: python 2.7.14 is already installed
To upgrade to 3.6.4_4, run `brew upgrade python`

> brew install python3
Error: python 2.7.14 is already installed
To upgrade to 3.6.4_4, run `brew upgrade python`

И вот, похоже, переустановить python3 обратно не получается. Более того, я боюсь, что если я запущу brew upgrade python, я потеряю доступ к python2.

PS: Я заметил отсутствие python3, когда открыл свой терминал и сказал:

Last login: Sat Mar 10 15:16:43 on ttys002
virtualenvwrapper_run_hook:12: no such file or directory: /usr/local/bin/python3
virtualenvwrapper.sh: There was a problem running the initialization hooks.

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 and that PATH is
set properly.

Есть идеи, как это исправить или что могло быть причиной проблемы?

что-нибудь интересное из brew doctor?

meatspace 11.03.2018 01:50

@meatspace Я не совсем уверен, правильно ли я это понимаю. Вот его результат: hastebin.com/imeyuvozen.sql

Daksh Shah 11.03.2018 05:31
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
1 162
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Причина объясняется здесь: https://brew.sh/2018/01/19/homebrew-1.5.0/

Предлагаю добавить новую формулу: brew install python@2

Запустив brew info python@2, вы получите расположение установленного пакета:

/usr/local/Cellar/python@2/2.7.14_3

Имейте в виду, что python @ 2 - это формула, предназначенная только для кеги, что означает, что она не связана с / usr / местный. На этом этапе, в зависимости от ваших потребностей, вы должны принудительно установить ссылку на него, если это необходимо. Сначала попробуйте --dry-run, чтобы понять, что произойдет:

brew link --force --dry-run python@2

Если вы не хотите запускать команду brew link, вы всегда создаете удобную символическую ссылку (вам придется обновлять ссылку на случай, если вы запустите обновление формулы):

ln -s ../Cellar/python@2/2.7.14_3/bin/python python2

Суть в том, что homebrew начал считать python2 устаревшим.

Ответ принят как подходящий

Если у кого-то такая же проблема, brew upgrade python ничего не сломает. Я запустил его, и у меня все еще есть доступ к Python 2 и, кроме того, у меня есть Python 3. Кроме того, все старые библиотеки остаются предустановленными.

Другие вопросы по теме