Does Conda заменяет необходимость в virtualenv?

Недавно я обнаружил Conda после того, как у меня возникли проблемы с установкой SciPy, особенно в приложении Heroku, которое я разрабатываю.

С Conda вы создаете среду, очень похожую на то, что делает virtualenv . Мои вопросы:

  1. Если я использую Conda, он заменит необходимость в virtualenv? Если нет, как мне использовать их вместе? Я устанавливаю virtualenv в Conda или Conda в virtualenv?
  2. Мне все еще нужно использовать pip? Если да, смогу ли я по-прежнему устанавливать пакеты с помощью пипа в изолированной среде?

  1. Conda заменяет virtualenv. По-моему, это лучше. Он не ограничивается Python, но может использоваться и для других языков. По моему опыту он обеспечивает гораздо более плавный опыт, особенно для научных пакетов. Первый раз, когда я получил MayaVi, правильно установленный на Mac, был с conda .

  2. Вы все еще можете использовать pip . Фактически, conda устанавливает pip в каждой новой среде. Он знает о установленных пакетах.

Например:

 conda list 

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

 sphinx_rtd_theme 0.1.7 py35_0 defaults 

и те, которые установлены через pip :

 wxpython-common 3.0.0.0 <pip> 

Короткий ответ: вам нужна только конда.

  1. Conda эффективно сочетает функциональность pip и virtualenv в одном пакете, поэтому вам не нужен virtualenv, если вы используете conda.

  2. Вы будете удивлены, сколько пакетов поддерживает conda. Если этого недостаточно, вы можете использовать pip под кондой.

Вот ссылка на страницу conda, сравнивающую конду, pip и virtualenv: https://conda.io/docs/commands.html#conda-vs-pip-vs-virtualenv-commands .

Я добавлю, что создание и удаление окружений conda прост с помощью conda.

 conda create --name <envname> python=<version> <optional dependencies> conda env remove --name <envname> 

Эти среды сильно привязаны к пакетному управлению пакетами Conda , поэтому просто создавать среды и устанавливать как пакеты Python, так и не-Python. Кроме того, с Anaconda 4.1 добавлены nbextensions , которые интегрируются с ноутбуками Jupyter, улучшая трансляцию между воспроизводимыми средами и рабочими повествованиями.

По моему опыту, это быстрее и надежнее при установке больших библиотек, таких как numpy и pandas .

Да, conda намного проще в установке, чем virtualenv, и в значительной степени заменяет последнее.