Как связать домашнюю версию brew python и установить ее по умолчанию
Я только что переключился с MacPorts на HomeBrew. После установки всех необходимых версий XCode и другого программного обеспечения я попытался установить python с помощью homebrew: я думаю, что он успешно установлен, но когда я делаю which python
, он все еще показывает мне 2.7.3, который, я думаю, является версией, поставляемой с Mountain Lion.
which python
/usr/local/bin/python
python --version
Python 2.7.3
поэтому я снова попытался установить
brew install python --framework --universal
Warning: python-2.7.5 already installed, it just not linked
Но он говорит, что python 2.7.5 уже устанавливает и не связан, я пытался сделать brew link python
Это привело меня к следующему сообщению, поэтому я понятия не имею, что я должен делать:
Связывание/usr/local/Cellar/python/2.7.5... Предупреждение: не удалось связать python. Отмена связи...
Error: Could not symlink file: /usr/local/Cellar/python/2.7.5/bin/smtpd2.py
Target /usr/local/bin/smtpd2.py already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
brew link --overwrite formula_name
To list all files that would be deleted:
brew link --overwrite --dry-run formula_name
Ответы
Ответ 1
После установки python3 с помощью brew install python3
я получаю сообщение об ошибке:
Error: An unexpected error occurred during the 'brew link' step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
После ввода brew link python3
произошла ошибка:
Linking /usr/local/Cellar/python/3.6.4_3... Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Решить проблему:
sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/*
brew link python3
После этого я могу открыть python3, набрав python3
👍
(Из https://github.com/Homebrew/homebrew-core/issues/20985)
Ответ 2
Если вы использовали
brew install python
перед тем, как "unlink"
вы получили
brew info python
/usr/local/Cellar/python/2.7.11
python -V
Python 2.7.10
так что
brew unlink python && brew link python
и откройте новую оболочку терминала
python -V
Python 2.7.11
Ответ 3
В терминале введите:
brew link python
Ответ 4
Я думаю, вы должны быть точным, с какой версией вы хотите связать команду brew link python
как:
brew link python 3
Это даст вам такую ошибку:
Linking /usr/local/Cellar/python3/3.5.2...
Error: Could not symlink bin/2to3-3.5
Target /usr/local/bin/2to3-3.5
already exists.
Вы можете удалить его:
rm '/usr/local/bin/2to3-3.5'
Чтобы заставить ссылку и перезаписать все конфликтующие файлы:
brew link --overwrite python3
Чтобы просмотреть все файлы, которые будут удалены:
brew link --overwrite --dry-run python3
но вам нужно скопировать/вставить команду, чтобы принудительно установить ссылку:
brew link --overwrite python3
Я думаю, что вы должны установить версию (более новую).
Ответ 5
На OS X High Sierra мне пришлось сделать это:
sudo install -d -o $(whoami) -g admin /usr/local/Frameworks
brew uninstall --ignore-dependencies python
brew install python
python --version # should work, returns 2.7, which is a Python thing (it weird, but ok)
кредит https://gist.github.com/irazasyed/7732946#gistcomment-2235469
Я думаю, что это лучше, чем рекурсивное засорение /usr/local dir, но это может решить другие проблемы;)
Ответ 6
brew переключиться на python3 по умолчанию, поэтому, если вы все еще хотите установить python2 в качестве бина python по умолчанию, запустите:
brew unlink python && brew link python2 --force
Ответ 7
Этот ответ предназначен для обновления Python 2.7.10 до Python 2.7.11 на Mac OS X El Capitan. В Тип терминала:
brew unlink python
После этого типа на терминале
brew install python
Ответ 8
Я использую эти команды, чтобы решить это.
mkdir /usr/local/lib
mkdir /usr/local/lib/pkgconfig
brew link python