Подтвердить что ты не робот

В чем разница между pyenv, virtualenv, anaconda?

Я программист ruby, пытающийся изучить python. Я довольно семья с pyenv, так как это похоже на копию и вставку из rbenv. Pyenv помогает иметь более одной версии python в системе, а также изолировать питон, не касаясь чувствительной части системы.

Я полагаю, что каждая установка python поставляется с пакетом pip. Я все еще не понимаю, есть много хороших библиотек python, которые предлагают использовать этот virtualenv и anaconda. Я даже могу найти виртуальный плагин для pyenv.

Теперь я смущаюсь с целью этих двух pyenv и virtualenv. хуже внутри pyenv есть виртуальный плагин.

мои вопросы:

  • В чем разница между pyenv и virtualenv?
  • Есть ли разница в использовании команды pip внутри pyenv и virtualenv?
  • Что делает этот pyenv virutalenv?

Ваше объяснение с примером будет высоко оценено.

4b9b3361

Ответ 1

Изменить: Здесь стоит упомянуть pip, так как conda и pip имеют сходства и различия, которые относятся к этой теме.

pip: диспетчер пакетов Python.

  • Вы можете думать о pip как эквивалент python команды ruby ​​gem
  • pip по умолчанию не включен в python.
  • Вы можете установить Python с помощью homebrew, который автоматически установит pip: brew install python
  • Конечная версия OSX по умолчанию не включала pip. Чтобы добавить pip в свою версию python для Mac, вы можете sudo easy_install pip
  • Вы можете найти и опубликовать пакеты python с помощью PyPI: индекс пакета Python
  • Файл requirements.txt сопоставим с ruby ​​gemfile
  • Чтобы создать текстовый файл требований, pip freeze > requirements.txt
  • Обратите внимание, что на данный момент у нас установлен python в нашей системе, и мы создали файл требований. txt, в котором описываются все пакеты python, которые были установлены в вашей системе.

pyenv: диспетчер версий Python

  • Из документов: pyenv позволяет легко переключаться между несколькими версиями Python. Он прост, ненавязчив и следует традиции UNIX для универсальных инструментов, которые хорошо что-то делают. Этот проект был разветвлен с rbenv и ruby-build и изменен для Python.
  • Многие люди не решаются использовать python3.
  • Если вам нужно использовать разные версии python, pyenv позволяет вам легко управлять этим.

virtualenv: диспетчер среды Python.

  • Из документов: Основная проблема, которая рассматривается, - это одна из зависимостей и версий, а также косвенные разрешения. Представьте, что у вас есть приложение, которое нуждается в версии 1 LibFoo, но для другого приложения требуется версия 2. Как вы можете использовать оба этих приложения? Если вы устанавливаете все в /usr/lib/python 2.7/site-packages (или независимо от стандартного местоположения ваших платформ), его легко закончить в ситуации, когда вы непреднамеренно обновляете приложение, которое не должно быть обновлено.
  • Чтобы создать virtualenv, просто вызовите virtualenv ENV, где ENV - это каталог для размещения новой виртуальной среды.
  • Чтобы инициализировать virtualenv, вам нужно source ENV/bin/activate. Чтобы прекратить использование, просто вызовите deactivate.
  • После активации virtualenv вы можете установить все требования к пакету рабочей области, выполнив pip install -r в файле проекта requirements.txt.

Anaconda: Менеджер пакетов + Менеджер среды + Дополнительные научные библиотеки.

  • Из документов: Anaconda 4.2.0 включает в себя легкую установку Python (2.7.12, 3.4.5 и/или 3.5.2) и обновления более 100 готовых и проверенных научных и аналитических пакетов Python, которые включают NumPy, Pandas, SciPy, Matplotlib и IPython, с более чем 620 пакетами, доступными через простой conda install <packagename>
  • Как веб-разработчик, я не использовал Anaconda. Это ~ 3 ГБ, включая все пакеты.
  • Существует версия slimmed down miniconda, которая кажется, что это может быть более простой вариант, чем использование pip + virtualenv, хотя у меня нет опыта использования его лично.
  • В то время как conda позволяет устанавливать пакеты, эти пакеты являются отдельными, чем пакеты PyPI, поэтому вам все равно придется использовать pip дополнительно в зависимости от типов пакетов, которые вам нужно установить.

См. также: