Найти в Дзене

Что вкуснее: Python, Conda, Miniconda, Anaconda? Что за "твари", и с чем их едят...

Оглавление

Многие пользователи, имеющие отношение к "Python", знают, что это такое, знают элементарные правила обращения с ним, но впадают в беспомощный ступор, когда им встречается другая разновидность этого "пресмыкающегося", коих имеется в сем семействе некоторое множество.

Что делать, если вам на пути встретилась такая "тварь", как "Anaconda", "Miniconda", "Conda" и т.п., и как от нее не убежать, а поймать и съесть?

Давайте разберемся со всем "семейством", но прежде всего разберемся с формулировками и названиями. Все "семейство" именуется разными видами удава.

Терминология

  • Python (Питонвид змей из подсемейства удавов) — это высокоуровневый язык программирования, использующийся в машинном обучении и обработке больших объемов данных.
  • Conda (Конда) — это система управления пакетами (package), зависимостями (dependency) и средой (environment). Conda облегчает установку пакетов, успешно разрешая зависимости (как pip в Python), а также позволяет создавать виртуальную среду (как venv в Python), причем не только для Python, но и для других языков программирования. Conda входит в состав Anaconda и Miniconda как их неотъемлемая часть.
  • Anaconda (Анакондасамый крупный удав!) — это дистрибутив, который включает в себя Сonda, conda-build, Python и более двухсот пакетов, используемых в основном в области Data Science и Machine Learning (например, NumPy или Pandas). В состав Anaconda входит также Anaconda Navigator, с помощью которого можно управлять Сonda через графический интерфейс пользователя. Если вы не любитель работать через командную строку, Anaconda Navigator — для вас.
  • Anaconda Python — это дистрибутив языков программирования Python и R с открытым исходным кодом для ОС Windows, Linux и MacOS, в который входит набор свободных библиотек, система управления пакетами и другие компоненты. Он используется для проведения научных и инженерных расчетов, решения задач в области обработки данных, прогнозной аналитики, машинного обучения. Его разработкой и поддержкой занимается компания Anaconda Inc.
  • Miniconda (Миниконда придуманный в шутку программистами несуществующий вид удава по созвучности ассоциированный с "Conda" и "Anaconda") — это минимальный дистрибутив, включающий в себя Conda, Python, пакеты, от которых они зависят, и минимум самых полезных дополнительных пакетов, таких как pip или zlib. Все остальное (в том числе Anaconda Navigator) можно установить самостоятельно.
  • окружение, виртуальное окружение, среда — читай далее "venv"
  • venv, VENV, env, envs — сокращенное обозначение "виртуального окружения" питона — от "Virtual Environment"
  • PATH (они же "пути", "внести в пути") — "системная переменная среды", содержащая список папок, в которых система будет искать файл, если точный путь к файлу не указан.
  • ТРАНЗАКЦИЯ — группа связанных действий, которые выполняются как одно действие, сколько бы отдельных действий в него не входило. Таким образом, "транзакция" или выполняется, или не выполняется вообще.
  • КАНАЛ — аналог "--index-url" в PIP, имя, под которым хранится адрес репозитория. откуда берутся пакеты.
Примечание от автора: даже на достаточно мощной машине вы скоро откажетесь от идеи использовать Anaconda Navigator, из-за его крайней неповоротливости, ибо привыкнув к моментальному исполнению команд в режиме терминала, вы будете успевать попить чаю, пока навигатор анаконды что-то выполнит.

Как видим, все эти "гады" — это всего лишь "составляющие части" одной большой системы, называющиеся Анакондой в максимальном дистрибутиве, Миникондой — если в дистрибутив входит только Python (и "иже с ним"), и все это "безобразие" работает под управлением менеджера пакетов Conda.

Таким образом, установив Miniconda, вы получаете необходимый минимум: Сonda — систему управления пакетами, зависимостями и средой, Python и небольшое количество дополнительных пакетов, в том числе pip (вы можете пользоваться pip внутри conda, если вам захочется).

Примечание: если PIP не установлен, просто установите его:
conda install pip

Если на вашем компьютере уже установлен Python, удалять его нет необходимости: Miniconda установит свой Python параллельно тому, который уже установлен.

ВНИМАНИЕ: тобы не нарушить вашу текущую настройку питона (я же не знаю, что у вас там и как настроено, может у вас один системный питона в путях уже есть) при установке Miniconda внимательно читайте все пункты, в которых можно поставить "птицу", чтобы случайно не зарегистрировать питон, входящий в состав Miniconda как "системный Python"!!! Вам будет очень рекомендовано это сделать! Любой дистрибутив, который вы устанвливаете, считает себя самым главным и важным, и ведет себя так, будто ничего другого, кроме него, не существует!!!
После включения этой "птицы" все пути, реакция на PY-файлы, "питон по умолчанию" и т.п. будут направлены на экземпляр питона, входящий в состав Miniconda!!!
После включения этой "птицы" все пути, реакция на PY-файлы, "питон по умолчанию" и т.п. будут направлены на экземпляр питона, входящий в состав Miniconda!!!
Обратите внимание на третий пункт "птицы" этого окна! Он предлагает очистить кэш пакетов питона! Если вы его выберете, все, ранее закачанные вами пакеты (при переустановке которых они оттуда берутся), будут удалены и при переустановке чего-либо будут вновь качаться из интернета!

Далее мы будем рассматривать только Miniconda, поскольку наша тематика в этом разделе ограничивается языком Python.

Miniconda - где взять и как выбрать

Давайте привыкнем, что Miniconda — это "урезанная" Anaconda, и все вопросы по ней мы решаем на сайте самой анаконды: https://www.anaconda.com

Дистрибутив Miniconda, по сути, является дистрибутивом определенной верcии Python с "обернутой" вокруг него "оболочкой" Conda.

Если мы ставим "чистый" Python, то его менеджер пакетов PIP, является для него всего лишь "модулем" и "ОДИМ ИЗ менеджеров пакетов" (по умолчанию - pip), который может быть запушен для установки пакетов питона, а в некоторых дистрибутивах PIP может даже вообще отсутствовать.

Miniconda же — это прежде всего именно "менеджер управления" питоном, в который сам питон входит как "управляемая часть".

Это и является главным идеологическим отличием Miniconda от PIP.

Поэтому мы выбираем дистрибутив не как:

Python #.#.# версии

а как:

Miniconda-версия_питона-версия_conda-система

В соответствии с приведенным правилом нумерации берем дистрибутив Miniconda вот из этого репозитория: https://repo.anaconda.com/miniconda/

Там находятся все дистрибутивы Miniconda со всеми доступными версиями питона. Выбираем нужную, скачиваем и инсталлируем.

Последняя версия Miniconda всегда находится по адресу: https://docs.anaconda.com/miniconda

Miniconda - установка

Для примера беру просто последнюю версию, ибо наша цель — это не "запустить проект в работу", а "посмотреть и понять, что и как нам нужно для дальнейшей работы".

Я возьму вот эту версию:

-3

Скачали, запускаем:

-4

Подтверждаем "Лицензия"... дальше...

Я рекомендую ставить "Для всех", ибо путь к ней будет короче (для набора команд), а сама Miniconda изолирует данные пользователей друг от друга способом, отличным от "спрятать саму программу".
Я рекомендую ставить "Для всех", ибо путь к ней будет короче (для набора команд), а сама Miniconda изолирует данные пользователей друг от друга способом, отличным от "спрятать саму программу".

Далее — куда ставить

Для знакомства поставим по минимальному пути из соображений "минимального буквостучания" по клаве
Для знакомства поставим по минимальному пути из соображений "минимального буквостучания" по клаве

c:\mc3 - это для ассоциаций "Mini Conda 3-version"

Жмякаем дальше

Снимаем все "птицы" ибо иконка нам не нужна, как "системный питон он нам сейчас не нужен" (мы же не хотим нарушить что-то там уже имеющееся), а то, что в кэше, нам и самим нужно еще (лень заново качать).

-7

"Install" - ждем...

Встало.

Открываем папку "c:\mc3"

... и видим там знакомый "python.exe"
... и видим там знакомый "python.exe"

Проверка установки Miniconda

Откроем терминал (любой, просто "cmd") и запросим версию питона:

c:\mc3\python --version
Питон ответил номером версии
Питон ответил номером версии

Введем команду и запросим версию PIP

c:\mc3\python -m pip --version
PIP ответил номером версии
PIP ответил номером версии

Запросим версию Conda

c:\mc3\Scripts\conda --version
Conda ответила номером версии
Conda ответила номером версии

Именно этот номер "версии Conda" и является третьим значением в имени файла дистрибутива Miniconda.

Запросим у PIP список пакетов питона

c:\mc3\python -m pip list
PIP ответил нам списком имеющихся в наличии пакетов "в базовой установке"
PIP ответил нам списком имеющихся в наличии пакетов "в базовой установке"

Попробуем что-то установить в пакеты

c:\mc3\python -m pip install numpy
Поставил...
Поставил...
Примечание: установить пакеты в "среду" можно и во время ее создания путем добавления после имени "среды" списка имен пакетов, которые нужно установить:
conda create -n mc3_VENV scipy numpy torch

Попробуем удалить только что поставленное

c:\mc3\python -m pip uninstall numpy -y
Удалил
Удалил

Вывод:

Мы установили Python нужной нам версии путем установки Miniconda.

Установленный таким образом питон полностью работоспособен вместе со своим PIP так, будто мы работаем на обычном питоне.

А это и есть "обычный питон", и мы можем и дальше с ним продолжать работать как с обычно установленным питоном, он ничем не отличается от просто "установленного питона" с уже привычным нам (встроенным в питон "как модуль") менеджером пакетов PIP.

И сам PIP находится на привычном нам месте - в папке "scripts" от корня установки, и может работать самостоятельно.

c:\mc3\scripts\pip --version
PIP ответил номером версии
PIP ответил номером версии
c:\mc3\scripts\pip list
... и показал список установленных пакетов.
... и показал список установленных пакетов.

Но ведь мы устанавливали Miniconda не для того, чтобы просто установить Python нужной версии (хотя можно и так, просто лишyее место тратим на файлы и библиотеки самой Conda, которую просто не используем). Нашей задачей было убрать страх у пользователя, встретившего незнакомую систему, с которой еще не умеет работать.

Теперь, когда мы знаем, что встретив Miniconda в реальной ситуации можно с ней работать как с обычным питоном, и вся структура питона сохраняется, считаем один вопрос решенным, и перейдем к знакомству с самим менеджером пакетов Conda.

Запуск Conda

Поскольку Conda является "менеджером пакетов" питона, следовательно, она нам должна заменить "старый, добрый" PIP.

По сравнению с установкой "чистого" Python, установка Conda занимает намного больше места, поскольку содержит в себе дополнительные файлы и библиотеки, которые нужны самой Conda, а не питону.

В Conda (как и в папке виртуального окружения питона), есть папка "Scripts", в которой находится все, что нам нужно для работы с питоном и самой Сonda.

Здесь мы увидим и pip.exe, и знакомые по "VENV питона" команды и файлы "activate.bat" и "deactivate". Но здесь "activate.bat" и "deactivate" относятся к активации и деактивации виртуального окружения под управлением Conda, ведь мы его дистрибутив ставили.

Главные 4 файла, которые нам нужны в папке Scripts от Conda.
Главные 4 файла, которые нам нужны в папке Scripts от Conda.

Обращение с командами к Conda во всех дистрибутивах от Anaconda происходит по имени "conda", и очень похоже на обращение с командами к менеджеру пакетов PIP, ведь и тот, и другой — менеджеры пакетов.

Попробуем обратиться к Conda по имени с элементарными командами. Запросим номер версии Conda и номер версии PIP, благо они в одном каталоге находятся, заодно запросим список установленных пакетов не через PIP, а через Conda.

c:\mc3\Scripts\conda --version
c:\mc3\Scripts\pip --version
c:\mc3\Scripts\conda list

Красным — запрос, зеленым — ответ:

Запрос версии pip, conda, и список пакетов питона через conda
Запрос версии pip, conda, и список пакетов питона через conda

Как видим, Conda — это тот же PIP, но "по-другому". И информации гораздо больше выдает. Соответственно, conda надо собрать гораздо больше информации, чем pip, следовательно, ее надо запросить, получить, обработать и вывести. Именно поэтому Сonda "тяжелее" в работе, чем PIP, но и возможностей у conda больше. Не забываем, что pip — это встроенный в питона "дефолтный менеджер пакетов", а "встроенное" часто не бывает лучшим.

В Windows тоже есть встроенный "графический редактор" — это "Paint", и в нем тоже можно "рисовать" и делать какие-то элементарные вещи. А есть еще и "Adobe PhotoShop", но это уже совершенно другой уровень работы с графикой. А, если требуются только "элементарные возможности" типа "нарисовать синюю линию и залитый красным прямоугольник", то для этого вполне хватит и встроенного "Paint".

Такое же сравнение можно (примерно) привести и для сравнения pip и conda:

- PIP — это "Paint" для "быстренько замазать", он пренебрегает зависимостями из не-Python библиотек (HDF5, MKL, LLVM).


- CONDA
— это "Adobbe PhotoShop" для "профессиональной работы", это менеджер пакетов для любого программного обеспечения (установка, обновление, удаление). Работает с виртуальными системными средами. Это инструмент для управления пакетами и установщик с намного большим функционалом, чем в pip, и может обрабатывать зависимости библиотек вне пакетов Python, а также сами пакеты Python.

Просто в Miniconda (читай "для управления питоном") особые "возможности" не нужны, но напомним, что Conda - это единый менеджер управления пакетами для множества систем.

Поэтому многие профессиональные команды предпочитают работать с Conda, поскольку вопрос унификации программного обеспечения далеко не последний. Да и изучать проще один язык команд, а не несколько разных.

Виртуальные среды Conda

Conda создает и управляет виртуальными средами (VENV), по-своему.

Кто не в курcе, что такое "виртуальная среда (VENV) питона", ознакомьтесь со статьей: Python + VENV (виртуальное окружение) питона без "синей изоленты"

По умолчанию в Miniconda (читай Conda) все виртуальные среды создаются и хранятся в папке "envs" в корне установленного экземпляра Miniconda.

Изначально эта папка пуста ("envs" сокращение от "environments"):

Папка "envs" пуста
Папка "envs" пуста

... хотя команда "conda env list" и выдаст список:

conda env list
Отображается одна "venv" - "base"
Отображается одна "venv" - "base"

Под именем "base" отображается сам "базовый" питон, и команда "conda list" отобразит список пакетов именно "базового" питона, т.к. conda работает с пакетами "базового" питона точно так же, как с любым виртуальным окружением (venv).

c:\mc3\scripts\conda list
Отображение "базового" набора пакетов питона, которое представлено в системме как venv с именем "base"
Отображение "базового" набора пакетов питона, которое представлено в системме как venv с именем "base"

Список пакетов в "base" отображается "по умолчанию", поскольку у нас в системе нет других "виртуальных окружений".

Примечание: поскольку в Conda есть своя ("по умолчанию") папка для "виртуальных окружений", то пропадает необходимость следить за тем "Куда это я создал свое "venv"?", когда в питоне команда "python -m venv new_venv" создает новое venv просто "в текущем каталоге" (если юзер не укаазал в команде полный путь для ее создания).

ИЩИТЕ СОЗДАННОЕ VENV В ПАПКЕ "ENVS"
(это не значит, что нельзя создать "venv" в другом месте!)

Создание "виртуального окружения" в Conda

Создадим новое "окружение" через Conda (ключ "-n" = "--name"):

conda create -n mc3_VENV

Таким образом мы создадим "окружение" в папке по умолчанию "envs".

Можно сразу установить в среду нужную версию Python:

conda create -n mc3_VENV python=3.9

Добавить пакеты:

Примечание: пакеты можно установить как при создании среды:
conda create -n mc3_VENV scipy numpy=1.23
... так и отдельно сразу послде создания "среды":
conda create -n mc3_VENV
conda install -n mc3_VENV scipy numpy=1.23

Можно выйти за пределы "домашнего каталога по умолчанию":

Примечание: чтобы создать "окружение" там, где НАМ нужно, укажите ВМЕСТО ключа "-n" ключ "-p" (или "--prefix"), и укажите полный путь к папке, в которой его надо создать:
conda create -p d:\123\my_new_venv
Как видим, информация, выводимая conda более подробнаяи дружелюбная
Как видим, информация, выводимая conda более подробнаяи дружелюбная

Можно сразу создать "окружение", установить нужную версию Python, и установить список пакетов из "requirements.txt"

Это только пример построения команды:
conda create -p d:\3\3_venv python=3.9 --file d:\requirements.txt -y

Если "папка-назначения" не существует, она будет автоматически создана по указанному пути.

Выполнено одной командой
Выполнено одной командой
Примечание: можно экспортировать список пакетов Conda следующей командой ("-e"="--explicit"):
conda list -e > conda_requirements.txt
... но этот список будет выведен в формате Conda. Если вы будете импортировать командой PIP, то экспортировать надо с формате PIP:
pip freeze > requirements.txt
... просмотрите получившийся файл, если в нем будут какие-то непонятные пути к файлам, то для экспорта списке пакетов в формате PIP применяйте следующею команду:
pip list --format=freeze

Что еще очень привлекательно, так это то, что созданное "окружение", если
оно создано под какое-то приложение, настроено под него
(установлены все пакеты и т.п.) и работает на нем, фактически является "portable", и папка с "окружением" и приложением к нему может быть перенесена куда угодно.

Посмотрим список "окружений"

conda env list
Появилось наше "окружение"
Появилось наше "окружение"
Вот оно в папке "по умолчанию"
Вот оно в папке "по умолчанию"

Его размер всего 131 байт

-26

То есть, это просто "физическая папка" и все, что в ней находится, логически относится к виртуальному окружению с именем "mc3_VENV"

Теперь нам надо его "активировать" (переключиться в него). Поскольку мы только что открыли новое окно терминала, мы первой командой должны "инициировать" conda (если вы забудете это сделать, она вам об этом сама напомнит)

conda init
conda activate mc3_VENV
conda env list
Список "виртуальных окружений"
Список "виртуальных окружений"

Обратите внимание, что у нас, перед командной строкой появилась "напоминалочка" с именем окружения (зеленым обведено), и появилась "звездочка", которая указывает на то, что данное "окружение" АКТИВНО, и все дальнейшие команды будут выполняться над ним.

Деактивируем "окружение"

conda deactivate
Последовательность  активация и деактивация "окружения"
Последовательность активация и деактивация "окружения"

Как видим, после деактивации "окружения" звездочка пропала.

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

Если мы просто вызовем скрипт "activate" без указания имени "окружения", то откроется "окружение по умолчанию" — "base".

c:\mc3\Scripts\activate
conda deactivate
Без указания имени "окружения" откроется "окружение по умолчанию"
Без указания имени "окружения" откроется "окружение по умолчанию"

Это является очень важным отличием в управлении VEVN между управлением VENV из самого питона, и управлением им из Conda!

Установим что-то в "mc3_VENV", привожу последовательность команд с момента открытия нового окна терминала (cmd).

Примечание: поскольку мы не вносили в PATH папки Miniconda, и не делали его "системным питоном" на машине (чтобы не нарушать уже имеющиеся установки системы), сделайте "текущей" папку "Scripts" в корне установленного Miniconda!!!

Команда установки:

cmd
cd /d c:\mc3\Scripts
conda init
conda activate mc3_VENV
conda install pandas

... conda пошевелится немного, соберет нужную информацию, выведет вам ее для ознакомления, и запросит подтверждение операции (скриншот привожу с команды "install"):

Запрос подтверждения на инсталляцию с выводом полного отчета о том, что предстоит сделать.
Запрос подтверждения на инсталляцию с выводом полного отчета о том, что предстоит сделать.

После этого начнется установка всего описанного в "окружение" с именем "mc3_VENV" (оно у нас "активно" судя по префиксу командной строки терминала). Когда установка закончится, conda сообщит нам об этом:

Отчет о завершении установки.
Отчет о завершении установки.

Обратите внимание, что все операции, производимые conda, являются "ТРАЗАКЦИЕЙ"!

Вот как выглядит папка "mc3_VENV" после установки туда "всего":

Сам питон туда тоже установлен.
Сам питон туда тоже установлен.
Как и то, где установленный в "окружение" питон будет искать свои пакеты.
Как и то, где установленный в "окружение" питон будет искать свои пакеты.
Структура создаваемого с помощью Conda "окружения" полностью повторяет стандартное "окружение", созданное модулем "venv" питона.
Структура создаваемого с помощью Conda "окружения" полностью повторяет стандартное "окружение", созданное модулем "venv" питона.

Структура создаваемого с помощью Conda "окружения" полностью повторяет стандартное "окружение", созданное модулем "venv" питона, все, что питон будет искать в пакетах. находится на своем месте. Только...

... только conda добавила в него "хренову тучу" своих модулей и библиотек с софтом — "А мне на-ааа-да-ааАААА!!!". У меня даже просто "листинг файлов" полностью в окно не влез (даже тут, в статье, места жалко столько занимать под скриншот!).

"Примерные объемы" добавляемых сщбственных данных Conda (и это еще не все!).
"Примерные объемы" добавляемых сщбственных данных Conda (и это еще не все!).

Может быть именно поэтому я (да и многие другие программисты), предпочитаю использовать PIP в качестве "менеджера пакетов" в питоне, который гораздо меньше "сорит", чем conda, у которого только лог и список файлов "только к вечеру дочитаешь", хотя "корпоративным стандартом" менеджера пакетов ивляется, в соновном, именно Conda, а PIP — так, быстренько посмотреть, установлен пакет в репозиторий, или нет.

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

Но вот "вес виртуальных окружений" , созданных с помощью Conda, намного превышает аналогичные, созданные самим питоном с помошью своих модулей.

Каналы Conda и Anaconda

Еще одним важным отличием Conda является наличие "каналов", из которых производится установка пакетов. За это отвечает ключ "-c" в команде установки:

conda install -c conda-forge nampy

...ключ "-c" (или "--channel") указывает, какой именно "канал", отличный от стандартного "anaconda" надо использовать для установки пакетов.

Канал — в Conda это аналог "--index-url" в PIP, адрес, откуда устанавливается пакет. Он иногда требует изменения, если в канаде "по умолчанию" не найден нужный пакет. Но отличие от "--index-url" в том, что Conda может искать во всех каналах, которые есть в ее списке последовательно, по мере их приоритета.

(Каналы установки это отдельная тема, которую мы тут затрагивать не будем. Кто хочет узнать о "каналах" больше, читайте тут: https://docs.anaconda.com/navigator/tutorials/manage-channels)

Создание нового "окружения" с установкой нужной версии Python

Но Conda не ограничивается только той версией Python, вместе с которой она установлена. Conda может устанавливать таке и сам Python. Команда для установки пиитона нужной версии будетвыглядеть так:

conda create -n "myenv" python=3.10
Установка питона нужной версии
Установка питона нужной версии

Таким образом Conda может являться еще и дистрибутивом любой версии Python, создавая новые "окружение" вместе с установкой в него нужной версии Python.

Обновление пакетов

В зависимости от установочного канала для обновления пакета достаточно лишь заменить install на команду update.

Удаление пакетов из "mc3_VENV"

Удаления пакетов производится командой "uninstall", или "remove".

conda uninstall pandas
План работы,  изапрос на выполнение действий.
План работы, изапрос на выполнение действий.

И, после подтверждения — выполнено.

Транзакция на удаление выполнена.
Транзакция на удаление выполнена.

Экспорт "виртуального окружения"

conda env export > file_name.yml
Содержимое файла "yml"
Содержимое файла "yml"

Клонирование "сред" происходит путем воссоздания "среды", можно изменить имя "venv", что я сейчас и сделаю:

Можно изменить название "venv"
Можно изменить название "venv"

Импорт "виртуального окружения"

conda env create -f file_name.yml
Транзакция завершена
Транзакция завершена
... и создан клон "окружения", экспортированного на предыдуще этапе, но под другим именем (я в файле имя изменил).
... и создан клон "окружения", экспортированного на предыдуще этапе, но под другим именем (я в файле имя изменил).

Откат изменений "виртуального окружения"

Команда:

conda list --revisions

... покажет вам нумерованый список истории транзакций:

Обратите внимание на НОМЕР
Обратите внимание на НОМЕР

Откат к предыдущему состояни транзакции можно сделать командой:
(замените ## номером "revision")

conda install --revision ##

Удаление "виртуального окружения"

conda remove -n myenv --all -y

... где:

  • -n (или "--name") — это имя "среды"
  • --all — удаление и самой "среды", если в ней не осталось пакетов
  • -y — ответ "Yes" на все вопросы (удалить без запросов подтверждения)
Примечение: добавление ключа "-y" в конце любой команды, означает "Отвечать YES на все запросы", т.е. "выполнить не задавая вопросы".
Удаление
Удаление
Действительно удалила, надо же!
Действительно удалила, надо же!

Удалим тепеть и первую "venv"

conda env remove -n mc3_VENV -y

Сообщение: Не могу удалить текущее окружение. Деактивируейте и запустите "conda remove" снова.
Сообщение: Не могу удалить текущее окружение. Деактивируейте и запустите "conda remove" снова.

Я специально не вышел из "активной" среды, чтобы вызвать это предупреждение, и показать, что Conda не удалит среду, которая сейчас "активна" (смотри префикс командной строки)

Проверим:

conda env list
Звездочка показывает "активную среду"
Звездочка показывает "активную среду"
-48

Продолжаем "скриншот":

-49
  • Синим — префикс имени "активной среды"
  • Красным — команда деактивации
  • Зеленым — префикс пропал, мы "вышли из среды"
  • Желтым — повторение команды удаления "среды"

Удалено!
Но папка осталась...

Папка осталась на месте
Папка осталась на месте
Trash - корзина
Trash - корзина
Trash - корзина
Trash - корзина

Trash - корзина!

Мы раньше из этого "venv" удаляли пакет "numpy", он был не "почикан вообще", а "помещен в корзину"!

Поэтому Conda и не удалила саму папку "mc3_VENV", как "не пустую".

Даже, если бы в ней остался хоть один файл, кторый там появился не с помощью самой Conda, она бы "не свой" файл удалять не стала и оставила бы его на месте. Если бы папка была полностью пустая, Conda бы удалила и саму папку.

Теперь вы примерно представляете себе, что такое Miniconda, что такое сама Conda, как примерно с ее помощью управлять пакетами питона, и что команды Conda по управлению пакетами питона очень похожи (а где-то и вообще одинаковы) на команды PIP.

Осталось только изучить команды Conda, а таких "справочников команд Conda" в интернете полно.

  • Conda --help — это тоже никто пока не отменял

Где найти информаццию о командах Conda

Официальная краткая справка:
https://docs.conda.io/projects/conda/en/stable/user-guide/cheatsheet.html

Официальная полная справка с разбивкой по разделам:
https://docs.conda.io/projects/conda/en/stable/commands/index.html

Узучение всех комманд Conda целью этой статьи не является.
Кому интересно - дальше сами )

P.S.
Следует помнить, что Conda оставляет на машине под Windows свли следы, которые не всегда удаляет даже при инсталляции. В частности, часть информации хранится в папке:

\Users\UserName\.conda

Удачи!
NStor
https://t.me/stable_cascade_rus
https://t.me/srigert