Выбор среды Python для проекта в Visual Studio
Весь код в проекте Python выполняется в контексте определенного окружения, например в глобальном окружении Python, окружении Anaconda, виртуальном окружении или окружении Conda. Visual Studio использует это же окружение для отладки, импорта, автозавершения элементов, проверки синтаксиса и других задач, требующих языковые службы, которые характерны для данной версии Python и набора установленных пакетов.
Для всех новых проектов Python в Visual Studio настраивается глобальное окружение по умолчанию, которое указано в узле Окружения Python в обозревателе решений:

Чтобы изменить окружение для проекта, щелкните правой кнопкой мыши узел Окружения Python и выберите Добавить окружение. Можно также выбрать пункт Добавить окружение в раскрывающемся списке сред на панели инструментов Python.
Когда откроется диалоговое окно Добавление окружения, перейдите на вкладку Существующее окружение и выберите новое окружение из раскрывающегося списка Окружение:

Если вы уже добавили в проект окружение, отличное от стандартного глобального окружения, для него может потребоваться активация. Щелкните окружение правой кнопкой мыши в узле Окружения Python и выберите действие Активировать окружение. Чтобы удалить из проекта окружение, выберите действие Удалить.

Использование виртуальных окружений
Виртуальное окружение — это уникальное сочетание интерпретатора Python и набора библиотек, которое не повторяется в других глобальных окружениях и окружениях Conda. Виртуальное окружение предназначено для конкретного проекта, и данные о нем хранятся в папке проекта. В этой папке содержатся установленные библиотеки окружения и файл pyvenv.cfg, в котором указан путь к базовому интерпретатору, расположенному в другом месте файловой системы. То есть в виртуальном окружении нет копии интерпретатора, а только ссылка на него.
Преимуществом виртуального окружения является то, что в нем по мере разработки проекта всегда будут отражаться точные зависимости проекта. (С другой стороны, общая глобальная среда содержит любое количество библиотек, которые используются в проекте. Затем можно легко создать файл requirements.txt из виртуальной среды, который затем используется для переустановки этих зависимостей на другом компьютере разработки или рабочей среды. Дополнительные сведения см. в руководстве по управлению необходимыми пакетами с помощью requirements.txt.
Если в Visual Studio открыть проект, который содержит файл requirements.txt, Visual Studio автоматически позволит воссоздать виртуальное окружение. На тех компьютерах, где не установлена среда Visual Studio, можно восстанавливать пакеты с помощью команды pip install -r requirements.txt .
Учитывая то, что в виртуальном окружении жестко запрограммирован путь к базовому интерпретатору и можно воссоздать окружение с помощью файла requirements.txt, обычно вся папка виртуального окружения не указывается в системе управления версиями.
В следующих разделах объясняется, как активировать существующее виртуальное окружение в проекте и создать новое виртуальное окружение.
В Visual Studio виртуальное окружение для проекта активируется так же, как и любое другое окружение: с помощью узла Окружения Python в обозревателе решений.
Если виртуальное окружение добавлено в проект, оно появится в окне Окружения Python. После этого вы сможете активировать его, как и любое другое окружение, и управлять его пакетами.
Создание виртуальной среды
Виртуальное окружение можно создать напрямую в Visual Studio, выполнив следующие действия.

- Чтобы изменить окружение для проекта, щелкните правой кнопкой мыши узел Окружения Python в обозревателе решений и выберите Добавить окружение или выберите Добавить окружение из раскрывающегося списка окружений на панели инструментов Python. В открывшемся диалоговом окне Добавление окружения выберите вкладку Виртуальное окружение:
- Укажите имя виртуального окружения, выберите базовый интерпретатор и проверьте его расположение. В разделе Install packages from file (Устанавливать пакеты из файла) укажите путь к файлу requirements.txt, если нужно.
- Проверьте другие параметры в диалоговом окне.
| Параметр | Описание |
|---|---|
| Set as current environment (Установить в качестве текущего окружения) | После создания окружения активирует его в выбранном проекте. |
| Set as default environment for new projects (Установить в качестве окружения по умолчанию для новых проектов) | Автоматически устанавливает окружение и активирует его во всех новых проектах, которые создаются в Visual Studio. При использовании этого варианта виртуальное окружение следует размещать за пределами конкретных проектов. |
| View in Python Environments window (Просмотреть в окне окружений Python) | Указывает, нужно ли открывать окно Окружения Python после создания окружения. |
| Make this environment available globally (Сделать это окружение доступным глобально) | Указывает, нужно ли сделать это виртуальное окружение глобальным. При использовании этого варианта виртуальное окружение следует размещать за пределами конкретных проектов. |
Активация существующего виртуального окружения
Если у вас уже есть виртуальное окружение, его можно активировать для проекта следующим образом:
- В обозревателе решений щелкните правой кнопкой мыши Окружения Python и выберите Добавить окружение.
- Откроется диалоговое окно Обзор. Найдите и выберите здесь папку с виртуальным окружением, а затем нажмите кнопку ОК. Если Visual Studio обнаружит в этом окружении файл requirements.txt, появится запрос на установку обнаруженных пакетов.
- Через несколько секунд виртуальное окружение появится в узле Окружения Pythonобозревателя решений. Виртуальное окружение не активируется по умолчанию, поэтому щелкните его правой кнопкой мыши и выберите действие Активировать окружение.
Удаление виртуального окружения
- В обозревателе решений щелкните правой кнопкой мыши виртуальное окружение и выберите Удалить.
- В Visual Studio вам будет предложено выбрать нужное действие (убрать или удалить виртуальное окружение). Вариант Убрать означает, что окружение исчезнет из проекта, но сохранится в файловой системе. Если выбрать Удалить, окружение убирается из проекта и все его файлы удаляются из файловой системы. Это действие не затрагивает базовый интерпретатор.
Просмотр установленных пакетов
В Обозревателе решений можно развернуть узел любого окружения, чтобы быстро просмотреть установленные в нем пакеты (те, которые можно импортировать и применять в коде, когда активно это окружение):

Чтобы установить новые пакеты, щелкните окружение правой кнопкой мыши и выберите действие Manage Python Packages (Управление пакетами Python). В окне Окружения Python откроется соответствующая вкладка Пакеты. На вкладке Пакеты введите условие поиска (обычно это имя пакета), и Visual Studio отобразит все подходящие пакеты.
Пакеты (и зависимости) в Visual Studio для большинства окружений скачиваются из репозитория Python Package Index (PyPI). В нем же вы можете искать доступные пакеты. В строке состояния Visual Studio и окне вывода отображаются сведения об установке. Чтобы удалить пакет, щелкните его правой кнопкой мыши и выберите Удалить.
Обычно диспетчер пакетов conda по умолчанию использует канал https://repo.continuum.io/pkgs/ , но доступны и другие каналы. Дополнительные сведения см. в статье Управление каналами (docs.conda.io).
Не забывайте, что отображаемые записи могут быть неточными, а задания установки и удаления — ненадежными или недоступными. Visual Studio использует диспетчер пакетов pip, если он доступен, и при необходимости скачивает и устанавливает его. Visual Studio также может использовать диспетчер пакетов простой установки (easy_install). Здесь же отображаются пакеты, установленные с помощью команд pip или easy_install из командной строки.
Обратите внимание, что сейчас Visual Studio не поддерживает использование conda для установки пакетов в окружении Conda. Вместо этого используйте conda из командной строки.
Если пакет содержит исходный код собственных компонентов в файлах с расширением .pyd, попытка pip установить пакет завершается сбоем. Если необходимая версия Visual Studio не установлена, pip не может скомпилировать эти компоненты. В этом случае отображается такое сообщение: Ошибка: не удалось найти vcvarsall.bat. Как правило, диспетчер easy_install может скачать предварительно скомпилированные двоичные файлы. Подходящий компилятор для более старых версий Python можно скачать по адресу https://python.en.uptodown.com/windows/versions. Дополнительные сведения см. в записи блога команды разработчиков Python How to deal with the pain of “unable to find vcvarsall.bat” (Что делать в случае возникновения ошибки «Не удалось найти vcvarsall.bat»).
Связанный контент
- Управление окружениями Python в Visual Studio
- Использование файла requirements.txt для зависимостей
- Пути поиска
- Справочная информация по окну «Окружения Python»
Python venv на Windows 10
Небольшая памятка по установке и настройке виртуальной среды Python на Windows 10.
0. Установить Python.
- Прописать пути к Python в %PATH%.
- Перезагрузить компьютер.
- Проверить версию Python в cmd, запустить Python Shell в cmd:
python --version
Python 3.8.2python
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
4. Если все работает, то создаем виртуальную среду:
python -m venv env
5. В директории должны появиться папки:
6. Если не появились, то проверяем версии Python, пути к Python и если ничего не помогает, то переустанавливаем или обновляем с сайта.
7. Если все появилось, то в папке Scripts должен будет лежать файл activate.
8. Запускаем скрипт активации виртуальной среды:
env\Scripts\activate
9. На это шаге возможна следующая ошибка: выполнение сценариев отключено в этой системе.
10. Включаем выполнение сценариев. Отрываем powershell от имени администратора:
11. Прописываем следующую команду:
Set-ExecutionPolicy RemoteSigned
12. После этого возвращаемся к терминалу, в котором работали при создании виртуальной среды и активируем её ещё раз:
env\Scripts\activate
Виртуальное окружение Python в Windows
Виртуальное окружение в Python — это способ изолировать зависимости (пакеты) проекта.
Создание виртуального окружения происходить через модуль venv, который идёт в поставке Python 3.
Используется команда «python −m venv» и название директории, в которой будет создано виртуальное окружение. Пример:
mkdir project cd project python -m venv env
Для активации окружение запускается скрипт внутри директории в которой нужно окружение: activate.bat. Затем выполнить необходимые операции, допустим установить пакет.
По окончанию работы запустить скрипт деактивации: deactivate.bat.
Предположим, что проект создан в папке e:\home\python\project\, набор команд будет следующий
e:\home\python\project\env\Scripts\activate.bat # установка зависимостей pip install requests e:\home\python\project\env\Scripts\deactivate.bat
Виртуальные окружения — Python: Настройка окружения
Вы уже знаете, что pip устанавливает пакеты в одно из двух окружений — в общесистемное или пользовательское. Интерпретатор Python при импорте модуля или пакета ищет его сначала в пользовательском окружении, затем — в общесистемном. Такая последовательность позволяет пользователю иметь нужные именно ему версии библиотек и Python-программ.
Но даже двух окружений недостаточно, когда программист начинает работать с несколькими проектами, ведь разные проекты могут иметь разные наборы зависимостей. Еще более тяжелый случай: разные проекты могут зависеть от общей библиотеки, но требовать разные ее версии — тогда происходит конфликт версий.
Очевидно, что разработчику на Python нужен какой-то механизм, позволяющий содержать разные проекты в изолированных песочницах. Такой механизм существует. Он называется виртуальные окружения.
Устройство виртуальных окружений
Каждое виртуальное окружение представляет собой директорию. Ее содержимое структурно напоминает общесистемное окружение — поддиректории соответственно названы и наполнены. Давайте рассмотрим пример:
env env ├── bin │ ├── activate │ … │ ├── pip │ … │ └── python3 -> …/python3 ├── lib │ └── python3.6 │ └── site-packages │ ├── pip │ │ ├── … │ … │ └── setuptools-40.6.2.dist-info │ ├── … …
В директории виртуального окружения находится директория bin/ , внутри которой расположены:
- Копия интерпретатора под именем python3 (символическая ссылка на оригинал)
- Копия исполняемого файла pip
В соседней директории по пути lib/python3.6/site-packages есть библиотеки, уже установленные в окружение. Как правило, только что созданное окружение имеет:
- Установленный пакет pip (исполняемый файл bin/pip — его точка входа)
- Пакет Setuptools
Эти два пакета составляют необходимый минимум для разработки проекта на Python.
При работе в окружении нужно запускать не системные Python и pip, а исполняемые файлы из директории bin . Когда интерпретатор Python находится в окружении, он знает, где находятся все доступные пакеты. Интерпретатор находит их по относительному пути ../lib/python3.6 . В таком случае копия pip из директории bin/ устанавливает пакеты в это же окружение, не затрагивая систему. Получается та самая изоляция, о которой мы говорили в начале урока.
Создание виртуального окружения
Вручную создавать всю описанную иерархию директорий и файлов не нужно — для этого есть специальный модуль venv .
В macOS и Windows этот модуль входит в поставку Python. На Ubuntu его нужно установить отдельно командой:
sudo apt install python3-venv
Проверим, что модуль установился и готов к использованию:
-m venv --help usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR . ]
Обычно окружение создается командой python3 -m venv имя_окружения . Давайте попробуем создать виртуальное окружение и установить туда пакет cowsay :
Вы можете видеть, что пакет устанавливается вместе с точкой входа, которую можно вызвать командой first_venv/bin/cowsay . Также сам пакет становится доступен интерпретатору, но только тому, что был запущен из окружения.
В таком виде виртуальное окружение уже можно использовать полноценно. Но постоянно вводить команды с префиксом first_venv/bin/ не очень удобно. Есть способ упростить вызов команд, доступных в окружении — это активация.
Активация окружения
При создании окружения в поддиректорию bin помещается сценарий оболочки, который на macOS и Ubuntu называется activate , а на Windows — activate.bat . Чтобы выполнить этот сценарий, нужно вызвать команду:
- на macOS и Ubuntu:
source first_venv/bin/activate
- на Windows:
\> first_venv\Scripts\activate.bat
В команде выше обратите внимание, что в Windows поддиректория с исполняемыми файлами называется не bin , а Scripts .
На Ubuntu активация выглядит следующим образом:
После активации отпала необходимость указывать путь до вызываемого исполняемого файла. Теперь cowsay и python вызываются без префикса, но это все те же команды из окружения.
Еще изменилось приглашение оболочки: в нем стало отображаться имя окружения. Это работает на macOS и Ubuntu и всегда напоминает, что мы находимся в виртуальном окружении.
Деактивация окружения делается командой deactivate , которая становится доступна после активации.
Активация и деактивация окружения влияют только на текущую сессию — то есть заметны только в этом конкретном терминале. Это удобно, потому что так можно иметь несколько окружений и активировать их одновременно в разных окнах терминала.
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях: