Как я могу установить Anaconda помимо существующей установки pyenv в OSX?

Приношу искренние извинения, если это легко найти в другом месте, но, хотя я нашел ряд сообщений с пояснениями pyenv и Anaconda, ни один из них не касался конкретно этой проблемы. Однако я часто бываю идиотом.

В Mac OSX (Mojave 10.14.6) я установил pyenv через Homebrew

brew install pyenv

И я с радостью устанавливаю и переключаюсь между версиями Python с помощью

pyenv install ...

а также

pyenv global ...

Обычно я использую VS Code в качестве IDE.

Теперь мне нужно поработать в Anaconda. Раньше не пользовался. Могу ли я просто установить Anaconda через сайт распространения и использовать его навигатор, и когда мне понадобятся мои старые версии Python используйте pyenv и VS Code, или возникнет конфликт при установке Anaconda? Если возникнет конфликт, есть ли способ запустить оба на OSX?

Я мог бы установить его и, конечно, посмотреть, что произойдет, и восстановить из резервной копии, если это будет большой беспорядок. Но я надеюсь, что у гуру pyenv / Anaconda может быть несколько мудрых советов, которые сэкономят мне потенциально часы уборки.

Заранее спасибо!


person Dribbler    schedule 24.08.2019    source источник


Ответы (2)


Возник конфликт, потому что и pyenv, и conda пытаются открыть глобальную среду Python по умолчанию.

Я использую эти инструменты вместе, и лучшее решение, которое я нашел, - это

  1. Всегда инициализируйте pyenv, используйте Python, установленный pyenv global, как Python по умолчанию
  2. Открывайте только команду conda, но НЕ активируйте из нее никакую среду

Деталь

Поскольку на вашем компьютере установлен pyenv, вам нужно только установить Anaconda.

brew cask install anaconda

Инициировать conda, не открывая "базовую" среду из conda.

# init conda, the following command write scripts into your shell init file automatically
conda init

# disable init of env "base"
conda config --set auto_activate_base false

Выполнено.

Примечание. После этой настройки Python по умолчанию будет установлен pyenv global. Используйте pyenv и conda для раздельного управления средами.

Примеры управления виртуальными средами.

# virtual environments from pyenv
pyenv install 3.6.9
pyenv virtualenv 3.6.9 new-env
pyenv activate new-env
pyenv deactive
# You can also use `pyenv local`


# virtual environments from conda
conda create -n new-env python=3.6
conda env list
conda activate new-env
conda deactivate

Местоположение env по умолчанию для pyenv - ~/.pyenv/versions.

Местоположение env по умолчанию для conda, проверьте вывод conda info.

Расширенное чтение

person Simba    schedule 22.09.2019
comment
Ответ Симбы был для меня безумно полезен (спасибо!), Но conda env create new-env python = 3.6 не сработало. Это было conda create -n new-env python = 3.6 Помещаем это здесь для всех, кто хочет, чтобы pyenv и conda работали вместе. - person Dribbler; 21.10.2019
comment
@Dribbler Спасибо. Я перепутал conda env create и conda create -n. - person Simba; 21.10.2019
comment
У меня на Каталине установлена ​​агностическая установка Анаконды. Я использую только zsh + pyenv + pycharm. Любить это. Но мне нужно установить Anaconda, чтобы я мог использовать Spyder и PyCharm вместе. Каталина по умолчанию использует zsh, а не bash. Я могу установить Anaconda, следуя этим инструкциям, но могу просто установить Spyder вручную. - person TokyoToo; 30.05.2020
comment
Спасибо за полезный ответ, единственное, что я не мог использовать conda после установки. Это произошло потому, что мне пришлось запустить команду conda init с указанием используемой оболочки, поскольку это была conda init zsh. Не уверен, что это из-за моей конфигурации mbp или чего-то еще, но, возможно, это также может помочь некоторым людям - person Vasco; 25.08.2020
comment
Как мы могли бы запустить записную книжку Юпитера в этом случае (auto_activate_base = false)? Просто нажать Jupiter notebook в терминале не получится. Другими словами, есть ли способ запустить ноутбук (или Spyder), если у нас деактивирована базовая среда conda при запуске? - person Bendemann; 24.01.2021
comment
@Bendemann При установке auto_activate_base = false только команда conda доступна для PATH. Чтобы использовать команду jupyter, сначала активируйте среду base из Anaconda. conda activate base. - person Simba; 25.01.2021

Не очень знаком с conda, но я много использую pyenv.

Pyenv имеет собственный виртуальный менеджер, который вы можете использовать. Вы всегда можете проверить, какая версия virtualenv активна, с помощью:

pyenv versions

Вы должны увидеть что-то вроде:

  system
  20190814_125309
* 3.7.4 (set by /home/tzhuang/.pyenv/version)
  3.7.4/envs/20190814_125309
  3.7.4/envs/buildmaster-sandbox
  3.7.4/envs/HEAD
  3.7.4/envs/myenv
  3.7.4/envs/sandbox
  buildmaster-sandbox
  HEAD
  myenv
  sandbox

Где * указывает на текущий активный virtualenv (это можно установить с помощью pyenv global, как вы упомянули). Вы можете вручную активировать любой virtualenv с помощью:

pyenv shell

Eg.

pyenv shell sandbox

Затем запуск pyenv versions дает:

  system
  20190814_125309
  3.7.4 (set by /home/tzhuang/.pyenv/version)
  3.7.4/envs/20190814_125309
  3.7.4/envs/buildmaster-sandbox
  3.7.4/envs/HEAD
  3.7.4/envs/myenv
  3.7.4/envs/sandbox
  buildmaster-sandbox
  HEAD
  myenv
* sandbox

Как правило, рекомендуется устанавливать любые пакеты, которые вы хотите, в новый virtualenv вместо глобального virtualenv. Это упрощает отладку проблем со средой / зависимостями, если вы столкнетесь с какими-либо проблемами.

person Kapitol    schedule 19.09.2019