Скорее всего после создания проекта Python, например, Flask или Django, запустить данный проект не удастся. И причина здесь в отсутствии установленной виртуального окружения. Виртуальная среда (она же окружение) специфична для каждого проекта, поэтому по умолчанию ее создавать не имеет смысла. Как правило, IDE Visual Studio оповещает о необходимости создания виртуальной среды для текущего проекта.
Работа с окружениями в Visual Studio несложна, интуитивно понятна и может вызвать затруднения только при первых попытках создания сред. В один проект можно установить и включить множество сред, но проект будет работать только с одной активированной средой. На странице описаны способы создания виртуальных сред и сред Conda в IDE Visual Studio на примере фреймворка Flask, но данные процедуры подойдут для любых проектов Python в Visual Studio.
Ниже прикреплен исходник проекта Flask для быстрого начала тестовой работы с виртуальными средами. Попрактиковавшись на тестовом исходнике, можно получить достаточно уверенные навыки манипулирования средами (окружениями) в Visual Studio. О создании виртуальных сред с помощью командной строки можно прочитать на странице Виртуальные среды venv Python в Windows.
Создание виртуальной среды в Visual Studio начинается с вызова диалогового окна способов создания и включения в проект виртуальных сред. Окно списка способов создания виртуальных сред вызывается таким образом:
в Обозревателе решений вызвать контекстное меню папки Окружения Python (папка отображения всех виртуальных сред) и нажать на пункт Добавить среду…
В результате вышеописанных действий откроется диалоговое Добавление окружения с предложением различных способов создания виртуальных сред.
Первый пункт Виртуальная среда в левом столбике (см. скриншот выше) предназначен для создания новых виртуальных сред. При наличии нескольких проектов в составе решения в выпадающем списке выбирается соответствующее имя проекта, для которого устанавливается виртуальная среда. По умолчанию новая виртуальная среда Python создается в каталоге проекта и в ее рабочих файлах прописывается данный абсолютный путь.
Далее назначается имя папки виртуальной среды и выбирается базовый интерпретатор Python установленный в операционной системе, который будет создавать виртуальную среду. Если у вас есть подготовленный файл requirements.txt (или иного названия) со списком требуемых для установки пакетов, то его абсолютный путь надо указать в окне ввода Установить пакеты из файла(необязательно), это можно сделать привязанной кнопкой с многоточием. Информацию о файле требований для проектов Python можно получить на странице Виртуальные среды Python.
При необходимости можно изменить расположение виртуальной среды, например создать ее на локальном хосте для целей упрощения публикации веб-проекта. Чекбокс Установить в качестве текущей среды активируется после создания второго и последующих окружений. При выборе чекбокса созданная виртуальная среда автоматически активируется.
Выбор чекбокса Просмотреть в окне сред Python предназначен для удобства и позволяет после окончания процедуры установки виртуальной среды просмотреть их список в окне Обозревателя решений.
Чекбокс Сделать эту среду доступной глобально предоставит доступ к данной среде любым проектам, создающимся в данной операционной системе. Надо заметить, что локальные среды более безопасны и рекомендуются к использованию. Глобальные среды создаются для редких и специфических целей, например для быстрого тестирования приложений Python без временных затрат на создание локальных виртуальных сред.
При активации вкладки Существующие среды появляется возможность использования в проекте ранее созданных виртуальных сред. Окно списка Среда предлагает список глобальных и установленных ранее локальных сред, пункт Custom позволяет указать путь до любой требуемой среды. При этом надо иметь в виду, что установка пакетов Python из проекта Visual Studio будет осуществляться в путь выбранной среды. В таких случаях при использовании готовой среды в нескольких проектах возможны конфликты версий пакетов.
В качестве префикса пути выбирается непосредственно папка виртуальной среды, если указать родительскую папку среды интеллект Visual Studio будет искать интерпретаторы Python и оконный PythonW (для графических приложений, без открытия консольного окна ) во вложенных папках. При удалении существующей среды будьте внимательны при выборе пунктов: исключить среду из проекта или физически удалить с диска, без возможности восстановления.
Conda – это кроссплатформенная система управления пакетами и виртуальными средами, в отличие от pip, она может устанавливать интерпретатор Python и создавать изолированные среды, которые могут содержать разные версии Python и установленные в них пакеты. Перед созданием окружения с помощью Conda Visual Studio требует предварительную установку Miniconda или Anaconda в операционной системе.
Anaconda и Miniconda – это наборы предустановленных пакетов в основном для разработки программ научных вычислений и машинного обучения. Наборы отличаются только количеством предустановленных пакетов. Anaconda и Miniconda универсальны и могут использоваться в формировании сред для любых Python проектов, например для Django, Flask. Пакет Conda и менеджер среды включены во все версии Anaconda и Miniconda. Если на машине установлены одновременно две системы Conda, то Visual Studio будет создавать среды только на основе одного из наборов.
Создание сред Conda похоже на создание «обычных» виртуальных сред: выбор проекта, определение названия папки среды, создание среды по файлу конфигурации. Окно Предварительный просмотр пакетов позволяет просмотреть уже установленные пакеты. Добавить пакеты в этот набор можно с помощью файла environment.yml либо вручную сформировать список дополнительных пакетов в окне ввода Одно или несколько имен пакетов Anaconda.
environment.yml – файл конфигурации среды Conda, некоторый аналог файла requirements.txt. Название environment.yml общепринятое, но поддерживаются любые названия данного файла. Создается он вне Visual Studio с помощью командной строки Anaconda Prompt, которая формируется при установке любого из наборов Conda. Команда создания файла: conda env export -n название_среды -f абсолютный_путь_желаемое_имя_файла_yml,
например: conda env export -n env15 -f G:\MyProjects\miniconda3\envs\env15\environment15.yml
Среды Conda устанавливаются не в каталог проекта, а в каталог Miniconda или Anaconda, в папку envs. Среды Conda становится фактически глобальными и видны всем проектам Python в IDE Visual Studio Обозреватель решений->Окружения Python->Просмотреть все окружения. И эти среды будут отображаться на вкладке Существующие среды.
Некоторые пакеты Conda могут «капризничать» при создании среды, например, может выпасть ошибка: CondaVerificationError: The package for tensorflow-base located at G:\MyProjects\Programming\Pythons\miniconda3\pkgs\tensorflow-base-2.10.0-mkl_py310h6a7f48e_0
В таких случаях, чтобы не терять время на поиск причин ошибок, можно скачать с определенных каналов(веб-адресов) пакеты вручную и установить их в определившуюся при ошибке папку, например:
в ошибке выше, папка установки пакета tensorflow - G:\MyProjects\Programming\Pythons\miniconda3\pkgs\. Узнать каналы (веб-адреса) скачивания можно командой: conda info в окне Anaconda Prompt. Таким образом можно принудительно установить необходимый пакет в базовую среду Conda и затем повторить создание ваших сред в Visual Studio.
Желаемая среда (или окружение) активируется из контекстного меню названия среды пунктом Активировать окружение. Активированная среда выделяется жирным шрифтом и помечается зеленым треугольником.
Один из способов изменить конфигурацию виртуальной среды (добавить или удалить пакеты) в Visual Studio это в Обозревателе решений вызвать контекстное меню из строки Окружения Python и нажать на пункт Просмотреть все окружения Python.
При выборе в верхнем окошке виртуального окружения, в нижнем отобразятся пакеты входящие в данную среду. Название пакета, который требуется добавить в среду, печатается в окне ввода Поиск по Conda(PyPI) …, затем нажать на появившуюся строку команды установки. При этом интеллект Visual Studio автоматически использует соответствующий типу среды установщик: Conda или PyPI. Но если необходимо использовать другой установщик, его можно выбрать в окне Пакеты Conda(PyPI).
Обновить пакет, входящий в выбранное окружение можно нажатием на строку с иконкой стрелки вверх и цифрами новой версии пакета напротив названия самого пакета.
Для удаления пакеты из виртуальной среды достаточно щелкнуть на крестик напротив названия пакета, выбранный пакет удалится из состава среды Conda или PyPI.
Виртуальная среда удаляется из контекстного меню названия среды пунктом Удалить. При этом появляется диалоговое окно с вариантами удаления: Исключить - среда исключается из проекта, но физически не удаляется с диска. Удалить - папка с файлами среды удаляется с диска, без возможности восстановления.
Среды Conda, поскольку они являются глобальными и могут использоваться несколькими проектами, не удаляются физически, а только исключаются из проекта. Физически они остаются в каталогах установки наборов Conda: Anaconda и Miniconda.
Для быстрого начала работы по тестированию создания, изменения и удаления сред PyPI и Conda ниже прикреплен исходник сайта на Python Flask. Исходник создан в IDE Visual Studio 2022 и не содержит виртуальных сред. Среды создаются самостоятельно последовательным процессом – Создание-> Изменение пакетов-> Удаление.