В чем разница между виртуальной средой PyCharm и средой Anaconda?
Когда я создаю новый проект в PyCharm, он создает новую виртуальную среду. Я читал, что когда я выполняю скрипты Python, они выполняются с использованием интерпретатора в этой среде вместо системной среды. Поэтому, если мне нужно установить некоторые пакеты, я могу установить их только в этой среде, а не в системной среде. Это круто.
Я также читал об окружающей среде Anaconda. Когда я создаю новую среду Anaconda, она создает новую, помимо системной среды. Для своих проектов я могу использовать эту среду и устанавливать только необходимые пакеты здесь, а не в основной системной среде.
Теперь мой вопрос: в чем разница между виртуальной средой, созданной PyCharm, и средой, созданной Anaconda? Размер виртуальной среды, созданной PyCharm, составляет около 15-20 МБ, а у Anaconda - 90 МБ. Итак, должна быть разница. Кроме того, я прочитал, что могу настроить свой PyCharm для использования интерпретатора Anaconda Environment.
Итак, в чем разница между средами, созданными PyCharm и Anaconda?
2 ответа
Обе среды основаны на python virtualenv, вы можете использовать их независимо и настраивать (или устанавливать) пакеты внутри него, как вам нужно, не беспокоясь о конфликтах. Это суть virtualenv.
Anaconda - это дистрибутив Python (как и дистрибутивы Linux), по умолчанию он добавляет другие пакеты, основываясь на мнении разработчиков. Следовательно, установка будет больше, чем если бы вы установили простой vanilla python. Это также, почему это виртуальная среда довольно большая.
Pycharm - это IDE, которая поддерживает функцию virtualenv в Python. Так что он может создать его для вас, если хотите. Он может использовать простой дистрибутив Python для его создания, поэтому он будет иметь меньший размер, чем если бы он использовал дистрибутив, такой как Anaconda, как вы заметили.
Проблема размера не относится к Anaconda, если вы перечислите все пакеты, установленные для вас Anaconda conda list
и установите его вручную в "легковесном" virtualenv, вы увидите, что размер тоже увеличится. Я верю, что вы поняли мою точку зрения.
Я должен уточнить, что anaconda
это просто коллекция. Реальный менеджер среды conda
, Вот miniconda
, Он просто содержит необходимые части для управления средой, а не полный anaconda
коллекция.
conda
выходит за рамки простого менеджера пакетов Python, но является системным менеджером пакетов. Это поможет вам установить пакет без боли. Классический пример установки numpy
на винде. Без conda
, это действительно сложно, так как ему нужен специальный компилятор C, который трудно получить. Но с conda
Вы можете установить numpy
только с одной командой conda install numpy
, Это автоматически решит проблему компилятора и зависимости C.
Итак, вернемся к вашему вопросу, когда вы создаете env в Pycharm, он спросит вас, какой env вы хотите создать: Virtualenv Environment
, Conda Environment
или же Pipenv Environment
, Что касается меня, я обычно выбираю Pipenv Environment
так как этот env будет привязан к текущему проекту и может генерировать файл блокировки.
В этом случае, я думаю, вы можете понять это сейчас: нет env с именем "создан PyCharm" или "Анаконда". Есть только 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
:
- Управляйте не только пакетами Python, но также различными версиями Python и общесистемными зависимостями.
- Конверты расположены в общедоступных каталогах.
- Меньше envs.
Virtualenv Environment
:
- Управление пакетами Python. Основная цель - разделить зависимости для каждого приложения.
- Envs обычно находятся в каталогах всего проекта (хотя
pipenv
по умолчанию создает env в общедоступных каталогах, многие считают, что каталоги проектов должны использоваться по умолчанию.) - Гораздо больше envs. (Новый env для каждого приложения)
Для меня я использую их обоих. я использую conda
управлять различными версиями Python и использовать pipenv
управлять зависимостями для моих приложений.