Как создать виртуальное окружение в Python
Python предлагает широкий спектр возможностей и имеет множество вариантов для применения. Благодаря своей простоте, читаемости и мощной экосистеме он стал одним из самых популярных языков программирования в мире.
(1).jpg)
Python используется в таких сферах, как:
- веб-разработка (для создания веб-приложений и веб-серверов),
- анализ данных и машинное обучение,
- автоматизация задач (позволяет легко создавать скрипты для автоматизации различных процессов),
- игровая разработка,
- создание настольных приложений.
Что такое виртуальное окружение Python
Виртуальное окружение Python (Python virtual environment) – это инструмент, позволяющий создавать изолированные среды для выполнения и разработки приложений на языке Python.
С помощью виртуального окружения Python можно установить и использовать различные версии пакетов и зависимостей для каждого проекта, изолируя их друг от друга и предотвращая конфликты или несовместимости.
Используя виртуальное окружение Python, вы получаете:
- Изоляцию зависимостей. Каждое виртуальное окружение имеет собственный независимый набор зависимостей и пакетов, что позволяет избежать конфликты между различными версиями пакетов.
- Управление версиями Python. Вы можете создавать и использовать различные версии Python в разных виртуальных окружениях, переключаясь между версиями, а также тестируя совместимость кода с новыми версиями Python.
- Чистоту проекта. Виртуальное окружение помогает поддерживать проект организованным, так как все зависимости и пакеты проекта хранятся в отдельной директории. Это упрощает управление и развертывание проектов.
- Переносимость. Вы можете передать виртуальное окружение на другую машину или другим разработчикам, что позволяет вести совместную работу над проектом.
Использование виртуальных окружений Python рекомендуется для разработки проектов, поскольку он помогает управлять и упрощать зависимости и версии, а также поддерживать проект в чистом и организованном состоянии.

Услуга VPS/VDS хостинг на Linux подойдет для проектов любой сложности:
- разработка приложений,
- создание почтового сервера,
- размещение интернет-магазина,
- развертывание продуктов 1С,
- размещение CRM-систем.
Создание виртуальной среды Python
Процесс настройки виртуального окружения Python — это создание изолированной среды для разработки и выполнения проектов. Виртуальная среда позволяет вам установить и управлять зависимостями в проекте, не влияя на другие проекты или систему в целом.
Для создания виртуального окружения в Python рекомендуем использовать встроенный модуль venv. Если вы используете версию Python 3.3 или выше, то модуль venv уже включен в стандартную библиотеку и его установка не требуется. Для установки модуля в более ранних версиях Python выполните команду:
pip install virtualenv
Далее следуйте инструкции:
- Откройте командную строку и перейдите в каталог, в котором будет создана виртуальная среда.
- Выполните команду:
python -m venv virt_name
где virt_name – имя вашей виртуальной среды.
- Дождитесь завершения процесса создания виртуальной среды. Это может занять некоторое время.
- Ваша виртуальная среда будет создана в папке virt_name. В ней же будут находиться все файлы и зависимости, связанные с виртуальной средой.
Активация виртуальной среды Python
Процесс активации виртуальной среды может быть выполнена различными способами в зависимости от используемой операционной системы и инструментов виртуализации.
Активируйте виртуальное окружение с помощью команд:
- Для Windows: .\Scripts\activate
- Для macOS и Linux: source bin/activate
При успешной активации на экране отобразится:
Теперь вы находитесь в активированной виртуальной среде Python.
Если вы используете инструмент управления пакетами, такой как pipenv или poetry, вы можете создать и активировать виртуальную среду одной командой.
- Для pipenv: pipenv shell
- Для poetry: poetry shell
Активация виртуальной среды Python позволяет изолировать установленные пакеты и зависимости для конкретного проекта, предотвращает конфликты версий и обеспечивает чистую среду разработки. После активации вы можете устанавливать и запускать пакеты Python внутри виртуальной среды без влияния на другие проекты или глобальную установку Python.
(1).jpg)
Автоматическая активация виртуальной среды Python
Для включения автоматической активации виртуальной среды при открытии терминала или командной строки, вам потребуется внести следующие изменения в файл конфигурации вашей оболочки (например, .bashrc для Bash или .zshrc для Zsh).
Приведем пример для оболочки Bash:
- Откройте файл конфигурации в текстовом редакторе и введите в терминале:
- В конце файла добавьте следующую строку, указывающую на активацию вашей виртуальной среды:
Замените /path/to/your/virtual/environment на путь к вашей виртуальной среде Python (например, /home/user/virt_name).
- Сохраните изменения и закройте файл конфигурации.
- Обновите текущую сессию оболочки, чтобы изменения вступили в силу:
Замените `~/.bashrc` на путь к вашему файлу конфигурации, если он отличается.
Теперь при открытии нового терминала или командной строки ваша виртуальная среда Python будет автоматически активирована. Это позволит использовать установленные в этой среде библиотеки и исполнять команды Python без необходимости активации вручную.
Деактивация виртуального окружения Python
Для деактивации виртуального окружения можно использовать следующую команду в терминале: deactivate.
Если вы работаете на операционной системе Windows, то вам необходимо использовать команду:
После выполнения этой команды виртуальное окружение будет деактивировано, и вы вернетесь в системное окружение Python.
Заключение
(1).jpg)
Настройка виртуальной среды в Python дает ряд преимуществ и часто рекомендуется разработчикам при выполнении проектов на Python. Чем может быть полезна виртуальная среда:
- Позволяет создавать отдельную изолированную среду для каждого проекта. Вы можете устанавливать и управлять зависимостями (библиотеки и пакеты) вашего проекта в изолированной среде, не влияя на другие проекты или систему в целом.
- С ее помощью создаются чистые и стабильные окружения для разработки и выполнения проектов. Начать работу можно с чистой виртуальной среды: установить только необходимые зависимости, избегая конфликтов между зависимостями других проектов. Это поможет снизить вероятность возникновения ошибок и облегчит управление зависимостями.
- Виртуальное окружение создает единообразную среду для вашего проекта, независимо от операционной системы или окружения разработки. Вы можете легко перенести ваш проект на другую машину или дать другим пользователям работать с вашим проектом.
- Управление версиями Python. Вы можете создавать и использовать разные виртуальные среды для различных версий Python, позволяя тестировать и разрабатывать проекты на разных версиях языка.
Настройка виртуального окружения Python является хорошей практикой и помогает сделать работу команды разработчиков более изолированной, портативной и стабильной.
Виртуальные окружения Python и инструменты для управления ими
Виртуальное окружение Python – это «автономное дерево каталогов, которое содержит пакет установки для конкретной версии Python, а также ряд дополнительных пакетов» (цитата из официальной документации).
Посмотрите на следующий комикс xkcd :

Мораль этой истории такова: используйте виртуальные окружения Python осознанно и организованно. Старайтесь не загрязнять вашу системную среду, иначе она станет беспорядочной и крайне неудобной для использования.
Поскольку использование виртуальных окружений потенциально может привести к беспорядку, возникло множество инструментов для управления ими. В этой статье мы рассмотрим некоторые из них:
Используйте встроенный venv
Примечание: команда virtualenv является «надмножеством» собственной команды python -m venv , описанной в этом разделе. Фактически, если вам нужна скорость и дополнительные функции virtualenv, просто замените везде python -m venv на virtualenv .
К счастью, модуль venv и pip обычно поставляются вместе с Python. Чтобы создать виртуальную среду в каталоге .venv , попробуйте следующее:
python -m venv .venv
Давайте разберём это подробнее. Мы используем исполняемый файл Python для версии Python, которую хотим использовать в виртуальном окружении. Это может быть python, как указано выше, или python3, python3.8, python3.9 и даже pypy3.
Затем мы указываем python выполнить модуль venv . Следом пишем имя каталога, в котором хотим разместить виртуальное окружение. Как видно выше, я обычно использую имя .venv или, для большей наглядности, venv .
После некоторой паузы будет создан новый каталог с именем .venv , который вы можете увидеть, выполнив команду ls или dir . (На Mac и Linux из-за точки в начале имени файл будет скрыт. Чтобы увидеть его в списке файлов, используйте команду ls -a ). Вы можете указать любое имя каталога вместо .venv .
Если вместо этого вы видите что-то вроде «The virtual environment was not created successfully because ensurepip is not available» или другую ошибку, связанную особенностями вашего дистрибутива, почитайте, как установить pip и venv.
Активация виртуального окружения
Теперь вы можете активировать виртуальное окружение с помощью следующей команды:
source ./.venv/bin/activate
.\venv\Scripts\Activate.ps1
Если вы не используете Bash или Powershell, вы можете заглянуть в каталог ./venv/bin или .\Venv\Scripts , чтобы увидеть другие параметры для CMD, fish или csh.
После активации предложение командной строки должно измениться: в нем появится имя каталога виртуального окружения. Что-то вроде:
(.venv) [default command prompt] $
Это (.venv) (или другое выбранное вами имя каталога) является признаком того, что вы активировали свое виртуальное окружение. Она не останется активной после перезагрузки компьютера или запуска другой оболочки или открытия новой вкладки терминала. Привыкайте запускать скрипт активации.
Редакторы/IDE иногда могут управлять виртуальным окружением и даже автоматически активировать его. Есть инструкции VSCode, плагины для Atom, для Vim, для Sublime и, конечно же, PyCharm.
После активации вы сможете попробовать сделать так:
(.venv) $ python >>> import sys >>> sys.executable '/home/my_username/sample_python/.venv/bin/python'
Как видите, исполняемый файл находится в каталоге вашего виртуального окружения. Если виртуальное окружение не активно, sys.executable должен читать что-то вроде /usr/bin/python или C:\\Python38\\python.exe .
Выполнение скриптов Python в виртуальном окружении
Вы можете выполнять скрипты Python двумя способами:
- Активировав виртуальное окружение, можно выполнить python my_script_name.py
- Запустить скрипт можно и без активации виртуального окружения, но тогда нужно писать, например, ./.venv/bin/python my_script_name.py
Деактивация виртуального окружения
Чтобы выйти из виртуального окружения, отключите его. Это можно сделать так:
(.venv) $ deactivate
Для повторной активации повторите приведенные выше инструкции.
Установка пакетов
Повторно активируйте виртуальную среду и установите что-нибудь с помощью pip :
(.venv) $ pip install arrow
Сначала пакеты и зависимости нужно установить. После этого вы сможете импортировать и использовать эти пакеты.
Вы можете выйти из системы, забыть о Python, вернуться через несколько недель и повторно активировать свое виртуальное окружение. Пакеты по-прежнему будут установлены. Но только в этом виртуальном окружении. Они не будут захламлять вашу системную среду Python или другие виртуальные окружения.
Уничтожение виртуального окружения
«Мое виртуальное окружение не подлежит ремонту», – скажете вы? Такое случается. Это безопасность использования виртуальных окружений. Что делать?
rm -r .venv
Всё ушло. Надеюсь, вы помните список пакетов (вы же сначала выполнили pip freeze или pip list , чтобы получить список, верно?).
Затем воссоздайте виртуальное окружение, как описано выше.
virtualenv
Инструмент virtualenv очень похож на python -m venv . Фактически, модуль venv основан на virtualenv. Однако использование virtualenv вместо python -m venv дает сразу несколько очевидных преимуществ:
- virtualenv обычно быстрее, чем python -m venv
- Такие инструменты, как pip , setuptools и wheel , часто более актуальны и кэшированы (отсюда и повышение производительности). В терминах virtualenv это seed packages. И да, вы можете добавлять другие seed packages.
Использование virtualenv
Несколько хороших команд virtualenv:
- virtualenv —help покажет вам, где должен быть файл конфигурации, если вы захотите установить какие-то настройки
- virtualenv —upgrade-embed-wheels обновит все seed packages , такие как pip и т. д., до последних версий.
В остальных случаях можете следовать инструкциям для venv, приведенным выше, но используйте virtualenv вместо python -m venv .
Установка virtualenv
Вы можете установить virtualenv из репозиториев менеджера пакетов (например, используя apt или dnf ).
Но мы очень рекомендуем использовать pipx . После установки pipx вы сможете запустить установку virtualenv:
pipx install virtualenv
Poetry
virtualenv и venv полезны и просты, они делают то, что нам нужно и делают это хорошо. Poetry – ещё один инструмент для удобного управления не только виртуальными окружениями, но и проектами и зависимостями.
Установка Poetry
Вы можете использовать официальную документацию для установки данного модуля.
Решите, где Poetry будет размещать виртуальные окружения
По умолчанию Poetry имеет центральное место для установки виртуальных окружений. Это хорошо, если вы не хотите, чтобы каталог вашего проекта содержал каталог виртуального окружения (то есть, если не хотите видеть каталог venv или .venv в вашем проекте).
Но если вы приверженец традиций и как раз хотите, чтобы файлы виртуального окружения находились в каталоге .venv в каждом проекте, попробуйте следующее:
poetry config virtualenvs.in-project true
Это глобальная настройка Poetry позволяет размещать виртуальные окружения в папках проектов.
Взаимодействие с виртуальным окружением Poetry
Poetry предназначен для управления проектами, поэтому для создания нового виртуального окружения сначала создайте каталог проекта и войдите в него:
poetry new my_project cd my_project
Когда виртуальное окружение потребуется в первый раз, оно будет создано автоматически.
Чтобы активировать виртуальное окружение, сделайте следующее:
poetry shell
Для выхода из этого виртуального окружения воспользуйтесь exit , Ctrl-d или вашим любимым способом выхода из оболочки.
Без предварительного входа в виртуальное окружение вы можете выполнить любую команду, доступную в нем, с помощью poetry run . К примеру, чтобы запустить python в виртуальном окружении, не входя в него, выполните следующую команду:
poetry run python
Добавление пакетов с помощью Poetry
В отличие от традиционного подхода, в Poetry мы не используем pip install для установки пакетов. Вместо этого используйте poetry add :
poetry add arrow
Эта команда установит arrow и запишет его как зависимость в файле pyproject.toml.
Вы можете увидеть множество других команд Poetry с помощью poetry help .
Pipenv
Интересно, что в официальном руководстве Python по установке пакетов прямо говорится, что «Управление несколькими виртуальными окружениями напрямую может быть утомительным, поэтому…», а затем упоминается Pipenv.
Несмотря на эту почти официальную рекомендацию, мы продолжаем пользоваться virtualenv, так как он надежен и прост, или Poetry, потому что он обеспечивает отличное управление проектами и зависимостями.
Тем не менее, Pipenv уже некоторое время пользуется популярностью и заслуживает внимания и уважения. Если вам он нравится, у вас могут быть на то веские причины.
Установка Pipenv
Хотя документация Pipenv рекомендуют использовать pip или ваш менеджер пакетов, мы настоятельно рекомендуем использовать pipx для установки Pipenv:
pipx install pipenv
Взаимодействие с виртуальным окружением Pipenv
При использовании Pipenv важно сначала создать каталог для вашего проекта. (Это вообще хороший шаг при работе с любым инструментом).
Когда виртуальное окружение потребуется в первый раз, оно будет создано автоматически.
Чтобы активировать виртуальное окружение, выполните следующее:
pipenv shell
Вы можете выполнить любую команду, доступную в виртуальном окружении, без предварительного входа в него. Делается это через pipenv run . Например, откроем python в виртуальном окружении:
pipenv run python
Установка пакетов с помощью Pipenv
Для установки пакетов вместо pip install Pipenv использует pipenv install .
pipenv install arrow
Вы можете увидеть множество других команд с помощью pipenv -h .
Pyflow
Если вам нужен инструмент для упрощения работы с виртуальными окружениями, мы бы посоветовали virtualenv или Poetry.
Но если вы хотите попробовать что-то малоизвестное, но довольно многообещающее, особенно если вы имеете дело с разными версиями Python, тогда стоит обратить внимание на Pyflow.
Возьмите Poetry, добавьте изящное управление версиями Python, снимите шляпу с conda и напишите все это на Rust – и результат будет немного похож на Pyflow. Время покажет, вырастет ли Pyflow и получит ли признание сообщества.
Установка Pyflow
Чтобы установить Pyflow, перейдите на страницу релизов Pyflow, загрузите и установите пакет, соответствующий вашей платформе.
Взаимодействие с виртуальным окружением Pyflow
Чтобы создать новое виртуальное окружение в Pyflow, сначала создайте проект:
pyflow new my_project
Уникальная особенность Pyflow: он предложит вам версию Python. Кроме того, если вы укажете версию, которая еще не установлена, он установит ее для вас довольно быстро (не компилируя с нуля, как это делает pyenv).
Затем сделайте новый каталог текущим рабочим каталогом:
cd my_project
Когда виртуальное окружение потребуется в первый раз, оно будет создана автоматически.
Чтобы запустить Python в виртуальном окружении, сделайте следующее:
pyflow python
Фактически, вы можете выполнить любую команду, доступную в окружении, выполнив pyflow нужная-команда . Это сокращение от pyflow run нужная-команда .
Не существует способа активации виртуального окружения, специфичного для Pyflow. Покопаться в установленном виртуальном окружении можно так:
.\__pypackages__\3.8\.venv\Scripts\Activate.ps1
Это для Windows Powershell. Для Mac или Linux используйте следующее:
source ./__pypackages__/3.8/.venv/bin/activate
Однако у нас есть подозрение, что Pyflow предполагается пользоваться не так. Лучше запускайте все с помощью pyflow нужная-команда или pyflow python .
Установка пакетов в Pyflow
Как и во многих других инструментах, в Pyflow для установки пакетов не используется pip install . Вместо этого команда pyflow install установит пакеты в виртуальное окружение и добавит их в pyproject.toml.
pyflow install arrow
Прочие команды Pyflow можно увидеть, выполнив pyflow help .
pyenv-virtualenv
Если вы хотите использовать virtualenv для управления виртуальными окружениями, а также управлять несколькими версиями Python, вам может подойти pyenv-virtualenv.
Не используйте pyenv (или любой другой инструмент управления версиями Python), если вы не уверены, что он вам действительно нужен.
pyenv не предназначен для управления виртуальными окружениями. Он управляет версиями Python. Другими словами, чтобы понять, сможет ли pyenv решить какие-либо из ваших проблем, сперва оцените свои потребности и возможности самого pyenv.
Установка pyenv-virtualenv
pyenv-virtualenv – это плагин для pyenv, поэтому его необходимо установить.
Для этого следуйте официальной документации или используйте автоматический установщик. Автоматический установщик – это просто curl https://pyenv.run | bash .
pyenv не работает в Windows. Существует форк pyenv для Windows. Однако, похоже, он несовместим с плагинами pyenv, такими как pyenv-virtualenv.
Взаимодействие с виртуальным окружением с помощью pyenv-virtualenv
Чтобы создать новое виртуальное окружение с помощью pyenv-virtualenv, выполните следующую команду:
pyenv virtualenv 3.8.5 venv38
Это создаст виртуальное окружение в текущем каталоге. Версия Python в окружении будет 3.8.5, а окружение будет иметь псевдоним venv38 .
Если вы не уверены, какие версии Python доступны для использования pyenv:
pyenv versions
pyenv install --list
После того, как вы успешно создали виртуальное окружение, оно должно появиться в списке:
pyenv virtualenvs
Виртуальные окружения имеют по две записи: длинные и более короткие псевдонимы.
Чтобы активировать виртуальное окружение вручную, можно использовать короткий псевдоним:
pyenv activate venv38
Отключение виртуального окружения:
pyenv deactivate
Обратите внимание, что pyenv-virtualenv предлагает дополнительную функцию, которая автоматически активирует виртуальные окружения, когда вы переходите в каталог с файлом .python-version , который содержит имя допустимого виртуального окружения. Это может быть достоинством, а может и раздражать — в зависимости от ваших личных шаблонов работы. В инструкциях по установке написано, как активировать эту фичу. Если вы использовали автоматический установщик и следовали его инструкциям, возможно, она уже включена.
Находясь в активированном виртуальном окружении, вы можете устанавливать пакеты с помощью pip , как указано в инструкциях venv выше.
Вы можете найти справку с помощью pyenv help и pyenv help virtualenv .
Conda
Conda – это не просто еще один пакет Python или менеджер окружений. Это альтернативная экосистема Python. Репозиторий пакетов conda отличается от репозитория PyPI, используемого большинством менеджеров пакетов. В репозитории Conda ~1500 пакетов. В репозитории PyPI ~ 150 000. Тем не менее, в Conda можно использовать pip , если вам это нужно.
Установка Conda
Если вам нужна большая установка Python и все инструменты, обратите внимание на Anaconda. Miniconda предоставляет инструмент командной строки conda и только те зависимости, которые необходимы для начала работы. Обычно этого хватает. Если вы не уверены, что вам подходит, Anaconda или Miniconda, есть полезное сравнение.
От редакции Pythonist. Можем предложить статью «Развертываем Anaconda – дистрибутив Python для data science».
Чтобы установить Miniconda, найдите соответствующий установщик, загрузите его и установите пакет. Есть вероятность, что ваш менеджер пакетов ( apt , dnf , brew и т.д.) уже может иметь Conda.
Используя Bash, можно сделать следующее:
conda init bash conda config --set auto_activate_base false
Первая строка добавляет автоматическую активацию «базовой» среды Conda в ваш .bashrc файл. Вторая строка добавляет файл ~/.condarc с этой настройкой в ваш домашний каталог.
Взаимодействие с виртуальным окружением в Conda
Новые виртуальные окружения создаются при помощи команды conda create . При этом указывается имя окружения и версия python (рекомендуется):
conda create --name env38 python=3.8.5
После создания вы можете активировать виртуальное окружение:
conda activate env38
При активации нужно указывать то имя окружения, которое вы прописали при его создании.
Чтобы отключить виртуальное окружение:
conda deactivate
Команды conda activate и conda deactivate работают одинаково независимо от оболочки или платформы.
Установка пакетов с помощью Conda
Чтобы установить пакет с помощью Conda, используйте conda install . Но сперва убедитесь, что виртуальное окружение активировано ( conda activate ).
conda install arrow
Одна крутая вещь о Conda: она точно скажет вам, где и что будет делать.
Hatch
Hatch немного похож на Pyflow в том, что он модный (например, использует pyproject.toml), непонятный и выполняет множество функций.
Установка Hatch
Для установки Hatch мы предлагаем использовать pipx .
pipx install hatch
Взаимодействие с виртуальным окружением в Hatch
Чтобы создать новое виртуальное окружение с Hatch, сначала создайте проект:
hatch new my_project
hatch new автоматически создает виртуальное окружение. Вы можете сделать новый каталог текущим рабочим:
cd my_project
Затем используйте hatch shell , чтобы войти в виртуальное окружение. Вы должны иметь возможность запускать Python и т.д. из новой оболочки.
Установка пакетов в Hatch
Как и во многих других инструментах, в Hatch не используется pip install . Но hatch install установит всё необходимое в виртуальном окружении.
hatch install arrow
Другие команды можно посмотреть с помощью hatch -h .
Заключение
Виртуальные окружения Python — отличная вещь для удобной и безопасной работы. В этой статье мы разобрали самые разные инструменты Python для управления виртуальными окружениями. Выбор инструмента – дело субъективное. Прежде чем решить, подумайте о том, кто вы, что делаете с помощью Python и каковы ваши потребности и желания.
Вот несколько замечаний, которые могут помочь вам сориентироваться при выборе:
- Вы создаете пакет/проект и хотите иметь что-то вроде швейцарского ножа с кучей функций, да еще чтоб популярность этого инструмента в сообществе росла? Попробуйте Poetry.
- Вы минималист/традиционалист и гордитесь этим? Ваш выбор — venv (virtualenv, если дополнительный инструмент вас не покоробит)
- Пишете простой скрипт? Вам хватит и venv, если, конечно, у вас уже не установлен virtualenv.
- Хотите управлять разными версиями Python, а нужные вам пакеты хранятся в репозитории Conda? Тогда Conda.
- Хотите управлять разными версиями Python, но вам нужны не только пакеты Conda? pyenv-virtualenv.
- Вы любите новинки и готовы рискнуть, и тоже хотите управлять разными версиями Python? Pyflow.
- Занимаетесь наукой о данных? Остановитесь на Conda.
- Вы уже используете ___ и вам он нравится? Вот и пользуйтесь им дальше!
- Вы попробовали ___ и вам не понравилось? Используйте что-нибудь другое!
Как создать виртуальное окружение Python
Узнайте, как создать и использовать виртуальное окружение Python для изоляции зависимостей проекта и предотвращения конфликтов библиотек.

Алексей Кодов
Автор статьи
23 июня 2023 в 18:48
Виртуальное окружение (virtual environment) в Python – это инструмент, позволяющий изолировать зависимости проекта от глобального окружения и предотвращать возможные конфликты между библиотеками. В этой статье мы разберемся, как создать и использовать виртуальное окружение в Python.
Установка и создание виртуального окружения
Python 3.3 и выше имеют встроенный модуль venv для создания виртуальных окружений. Для создания виртуального окружения выполните следующие шаги:
- Откройте терминал или командную строку
- Перейдите в каталог, где вы хотите создать виртуальное окружение
- Введите следующую команду:
python3 -m venv myenv
где myenv – это имя вашего виртуального окружения. Вы можете выбрать любое имя, которое вам нравится.
После выполнения команды будет создана папка с именем myenv , содержащая все необходимые файлы для виртуального окружения.
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Активация виртуального окружения
Для активации виртуального окружения используйте следующие команды:
myenv\Scripts\activate
source myenv/bin/activate
После активации окружения ваш терминал или командная строка изменятся, и вы увидите имя виртуального окружения в начале строки.
(myenv) user@host:~$
Теперь вы готовы к работе в изолированном окружении!
Установка пакетов и зависимостей
Чтобы установить пакеты в активированном виртуальном окружении, используйте команду pip install .
(myenv) user@host:~$ pip install requests
Эта команда установит пакет requests только в текущем виртуальном окружении.
Деактивация виртуального окружения
Для выхода из виртуального окружения и возврата к глобальному окружению Python введите следующую команду:
deactivate
Теперь вы знаете, как создать, активировать, использовать и деактивировать виртуальное окружение Python!
Если вы хотите углубить свои знания в Python-разработке, рекомендую посетить
Виртуальные окружения — 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 студентов
Наши выпускники работают в компаниях: