it-swarm.com.ru

В чем разница между виртуальной средой PyCharm и средой Anaconda?

Когда я создаю новый проект в PyCharm, он создает новую виртуальную среду. Я читал, что когда я выполняю скрипты Python, они выполняются с использованием интерпретатора в этой среде, а не в системной среде. Поэтому, если мне нужно установить некоторые пакеты, я могу установить их только в этой среде, а не в системной среде. Это круто.

Я также читал об окружающей среде Anaconda. Когда я создаю новую среду Anaconda, она создает новую, помимо системной среды. Для своих проектов я могу использовать эту среду и устанавливать только необходимые пакеты здесь, а не в основной системной среде.

Теперь мой вопрос: в чем разница между виртуальной средой, созданной PyCharm, и средой, созданной Anaconda? Размер виртуальной среды, созданной PyCharm, составляет около 15-20 МБ, а у Anaconda - 90 МБ. Итак, должна быть разница. Также я прочитал, что могу настроить свой PyCharm для использования интерпретатора Anaconda Environment. 

Итак, в чем разница между средами, созданными PyCharm и Anaconda?

8
Nagabhushan S N

Я должен уточнить, что anaconda это просто коллекция. Реальный менеджер среды conda. Здесьminiconda. Он просто содержит необходимые части для управления средой вместо полной коллекции anaconda.

conda выходит за рамки простого менеджера пакетов Python, но является общесистемным менеджером пакетов. Это поможет вам установить пакет без боли. Классическим примером является установка numpy в Windows. Без conda это действительно сложно, так как для этого нужен специальный компилятор C, который трудно получить. Но с conda вы можете установить numpy с помощью одной команды conda install numpy. Это автоматически решит проблему компилятора и зависимости C.


Итак, вернемся к вашему вопросу, когда вы создаете env в Pycharm, он спросит вас, какой env вы хотите создать: Virtualenv Environment, Conda Environmentor Pipenv Environment. Что касается меня, я обычно выбираю Pipenv Environment, так как этот env будет привязан к текущему проекту и может генерировать файл блокировки.

В этом случае, я думаю, вы можете понять это сейчас: нет env с именем «создан PyCharm» или «Anaconda». Есть только envs с именем «созданные Virtualenv, Conda или Pipenv». И Пичарм просто использует и оборачивает один из них.


Так в чем же разница между Conda Environment и Virtualenv Environment (Pipenv Environment по сути является Virtualenv Environment со сложной pip)? Разница исходит из их разных целей.

Conda Environment обычно для "пользователя Python". Они используют Python как инструмент для выполнения некоторых других работ, таких как сканирование веб-страниц, анализ данных и обработка изображений. Они мало знают о Python (поскольку им не нужно знать), поэтому conda настолько автоматизирован, насколько это возможно. И их задачи могут быть где угодно на компьютере, поэтому envs, созданные conda, находятся в общедоступных каталогах. И иногда им нужны разные версии Python, это можно сделать в conda, но не virtualenv.

Virtualenv Environment обычно для "разработчика Python". Они используют Python для создания приложений или пакетов. Конверты, созданные Virtualenv, обычно находятся в каталоге текущего проекта. Таким образом, вы можете создать среду для каждого приложения и легко управлять зависимостями.

Подводить итоги:

Conda Environment:

  1. Управляйте не только пакетами Python, но также различными версиями Python и общесистемными зависимостями.
  2. Конверты расположены в общедоступных каталогах.
  3. Меньше envs.

Virtualenv Environment:

  1. Управление пакетами Python. Основная цель - разделить зависимости для каждого приложения.
  2. Envs обычно расположены в каталогах всего проекта (хотя pipenv по умолчанию создает env в каталогах пользователя, многие считают, что каталоги проекта должны использоваться по умолчанию.)
  3. Гораздо больше envs. (Новый env для каждого приложения)

Для меня я использую их обоих. Я использую conda для управления различными версиями Python и использую pipenv для управления зависимостями для моих приложений.

6
Sraw

Обе среды основаны на Python virtualenv , вы можете использовать их независимо и настраивать (или устанавливать) пакеты внутри него по своему усмотрению, не беспокоясь о конфликтах. Это суть virtualenv. 

Anaconda - это дистрибутив Python (как и дистрибутивы Linux), по умолчанию он добавляет другие пакеты, основываясь на мнении разработчиков. Следовательно, установка больше, чем если бы вы установили простой Vanilla Python. Это также, почему это виртуальная среда довольно большая. 

Pycharm - это IDE, которая поддерживает функцию virtualenv в Python. Так что он может создать его для вас, если хотите. Он может использовать простой дистрибутив Python для его создания, поэтому он будет иметь меньший размер, чем если бы он использовал дистрибутив, такой как Anaconda, как вы заметили. 

Проблема размера не является специфической для Anaconda, если вы перечислите все пакеты, установленные для вас с помощью anaconda conda list, и установите его вручную в «облегченном» virtualenv, вы увидите, что размер также увеличится. Я верю, что вы поняли мою точку зрения.

0
Saheed Bolarinwa