Команда python и python3 не указывает на глобальную версию pyenv - PullRequest
0 голосов
/ 15 мая 2018

Я ранее установил Python 2.7 и Python 3 с homebrew.

Я добавил эти версии в pyenv

ln -s $(brew --cellar python)/* ~/.pyenv/versions
ln -s $(brew --cellar python@2)/* ~/.pyenv/versions

Когда я устанавливаю глобальную версию с pyenv global 3.6.5, я получаюследующая ошибка при запуске этой команды

➜ python --version
pyenv: python: command not found

The `python' command exists in these Python versions:
  2.7.15

Я хочу настроить так, чтобы команда python указывала на глобальную версию.

1 Ответ

0 голосов
/ 10 октября 2018

Формула python для Homebrew - это Python 3. Чтобы избежать взлома приложений, которые ожидают, что команда python запустит Python 2, brew install python не добавляет команду python, только python3.Это включено в предостережения, видимые в brew info python:

Python был установлен как / usr / local / bin / python3

Неверсионные символические ссылки python, python-config, pip и т. Д., Указывающие на python3, python3-config, pip3 и т. Д. Соответственно, были установлены в / usr / local / opt / python / libexec / bin

Когдаиспользуя только homebrew, легко заставить python указывать на Python 3, добавляя такую ​​строку в конфигурацию оболочки:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

Таким образом, одним из решений может быть ссылка pyenv на этот каталогвместо этого:

ln -s $(brew --prefix)/opt/python/libexec/bin ~/.pyenv/versions/3-brew

Это заставит python работать.Однако это означает, что python3.6 не будет работать , потому что этот исполняемый файл находится в $(brew --cellar python)/3.6.5, поэтому это не полное решение.Я еще не выяснил, что сохраняет оба поведения без ручного добавления символических ссылок на установленный Homebrew Python.

...