Раздел помощи SpaceWeb

Как создать виртуальное окружение в Python

15 дек, 2023

Что такое виртуальное окружение

Виртуальное окружение (Virtual Environment) – это изолированная среда, которая создается для разработки и выполнения программного обеспечения. Она позволяет разработчикам изолировать зависимости, библиотеки и пакеты для каждого проекта, таким образом, минимизируя конфликты между различными проектами.

Основные концепции виртуальных окружений:

  1. Изоляция. Виртуальная среда создается отдельно от системной среды, что позволяет избежать конфликтов между зависимостями разных проектов. Каждое виртуальное окружение содержит свой собственный набор библиотек и зависимостей.
  2. Воспроизводимость. Виртуальные окружения обеспечивают воспроизводимость окружения разработки. Это значит, что другие разработчики могут создать аналогичное окружение и точно воспроизвести вашу среду разработки, что делает совместную работу и развертывание проектов более надежными.
  3. Управление зависимостями. Вы можете легко устанавливать, обновлять и удалять зависимости внутри виртуального окружения, не затрагивая системные зависимости. Так, можно легко управлять версиями библиотек и пакетов, которые используются в вашем проекте.
  4. Инструменты для создания. Существуют различные инструменты для создания и управления виртуальными окружениями: «virtualenv» для Python, «venv», «conda», и другие.
  5. Использование в разработке. Виртуальные окружения особенно полезны в разработке, где разработчики могут иметь несколько проектов, каждый из которых зависит от разных версий библиотек и фреймворков.

Применение виртуальных окружений особенно распространено в разработке на Python, где «virtualenv» или встроенный модуль «venv» используются для создания изолированных сред разработки. Однако идея виртуальных окружений применима и в других языках программирования, где они также помогают в управлении зависимостями и изолировании среды разработки.

Как создать виртуальное окружение в Python 3 с помощью venv 

Шаг 1. Подготовьтесь к созданию

Windows: 

Вам не нужно отдельно устанавливать «venv» на Windows, так как этот пакет уже включен в стандартную библиотеку Python 3 и поставляется вместе с самим интерпретатором.

Linux / macOS:

Однако с Linux и macOS ситуация может быть немного иной, так как «venv» не всегда входит в стандартные пакеты операционной системы. В таких случаях вам может потребоваться установить его самостоятельно. 

Например, на Ubuntu и Debian вы можете установить «venv» с помощью следующей команды:

sudo apt install -y python3-venv

Иногда некоторым Python-пакетам может потребоваться сборка из исходных кодов, поэтому важно установить следующие пакеты для разработки:

sudo apt install -y build-essential libssl-dev libffi-dev python3-dev

Теперь мы рассмотрим, как создавать виртуальное окружение Python 3 с использованием инструмента «venv» в Windows, macOS и Linux.

Шаг 2. Запустите venv

Чтобы создать виртуальное окружение, выполните следующие шаги:

  1. Откройте командную строку (Windows) или терминал (Linux/macOS)
  2. Перейдите в каталог, в котором вы хотите создать виртуальное окружение.
  3. Выполните следующую команду для создания виртуального окружения:

python -m venv env


Где «env» – это имя вашего виртуального окружения, и вы можете выбрать любое имя):

Эта команда создаст виртуальное окружение с выбранным именем в текущем каталоге.

Шаг 3. Активируйте виртуальную среду

  1. Активация виртуального окружения происходит с помощью различных команд. Выберите подходящую в зависимости от вашей операционной системы. 

Windows:

На Windows вам нужно выполнить следующую команду:

venv\Scripts\activate.bat

Linux / macOS:

На Linux и macOS, для активации виртуального окружения используется другая команда:

source venv/bin/activate

Когда виртуальное окружение успешно активировано, вы увидите информацию с названием окружения в начале командной строки. Например:

(venv) root@purplegate:/var/test#

Эта строка означает, что теперь вы находитесь в изолированной среде, и можете начать работу над своим проектом, используя только зависимости, установленные в этом виртуальном окружении.

Другие инструменты

Конечно, «venv» – это современный инструмент для создания виртуальных сред в Python, но он доступен только начиная с версии Python 3. 

Однако, что делать тем, кто использует более старые версии Python? В этом случае существуют альтернативные инструменты, которые не только обладают различными полезными функциями, но и могут использоваться в старых версиях языка. 

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

  1. «virtualenv» – это инструмент для создания изолированных Python-окружений. Он позволяет вам создавать отдельные окружения для каждого проекта, чтобы избежать конфликтов зависимостей между различными проектами. В дальнейшем мы предоставим инструкцию по его использованию.
  2. «pyenv» – это инструмент для управления установками различных версий интерпретатора Python на вашей системе. Он предоставляет возможность легко переключаться между разными версиями Python, устанавливать новые версии, а также управлять версиями Python для конкретных проектов.

В отличие от «virtualenv», который создает изолированные окружения для проектов, «pyenv» фокусируется на управлении самими версиями Python.

  1. «virtualenvwrapper» – это расширение для «virtualenv», которое предоставляет удобные инструменты для управления виртуальными окружениями в Python. Он упрощает создание, удаление и переключение между виртуальными окружениями, а также предоставляет дополнительные функции для более удобной работы с проектами. 

«Virtualenvwrapper» удобен, так как позволяет легко переключаться между виртуальными средами и использовать различные плагины для расширения его функциональности.

Выбор инструмента зависит от ваших конкретных потребностей и версии Python, с которой вы работаете. Наиболее популярным и универсальным вариантом является «virtualenv», а потому ниже мы описали инструкцию по его использованию.

Как создать виртуальное окружение при помощи virtualenv

Рассмотрим этот процесс на примере операционной системы Linux. Тем не менее запуск «virtualenv» в Windows выполняется практически таким же образом. Единственное отличие заключается в путях, которые будут использованы, и в скриптах. Но это мы рассмотрим отдельно.

  1. Вы можете загрузить исходные коды приложения и установить их вручную, но проще всего воспользоваться менеджером «pip». 

В этом случае достаточно выполнить следующую команду в консоли:

pip install virtualenv

  1. Создайте виртуальную среду с помощью команды:

virtualenv env

Где «env» – это имя вашего виртуального окружения. Вы можете выбрать любое имя.

Эта простая команда создаст новый каталог в текущем местоположении. 

Далее рассмотрим структуру созданной директории:

  • Linux/macOS: В «/env/bin» будут находиться скрипты для работы с окружением, копия интерпретатора нужной версии, а также «pip» и другие инструменты для управления пакетами. 
  • Windows: Если вы используете Windows, то эта папка будет иметь другой путь: «/env/Scripts».
  • Директории «/env/lib» и «/env/include» предназначены для хранения основных библиотек окружения. Новые файлы будут загружаться в «/env/lib/pythonX.X/site-packages/», где X.X – версия вашего интерпретатора Python.
  1. Активируйте виртуальную среду. В разных операционных системах для этого есть разные команды:

Linux/macOS:

source env/bin/activate

Windows:

env\Scripts\activate.bat

Где «env» – это имя вашего виртуального окружения. Вы можете выбрать любое имя.

При успешной активации в начале появившейся строки вы увидите название вашей виртуальной среды:

  1. Если создать виртуальную среду с использованием ключа «--system-site-packages», то вы получите доступ к общему хранилищу пакетов в рамках вашей среды. 

Для этого используется следующая команда:

virtualenv --system-site-packages env

Важно отметить, что путь к хранилищу будет разным в Linux и Windows. 

Linux

/usr/lib/python3.9/site-packages

Windows

\Python39\Lib\site-packages 

Цифры версии могут отличаться.

  1. После завершения работы с программой необходимо правильно выйти из виртуальной среды. 
  • В Linux это делается командой «deactivate».
  • В Windows с использованием пакетного файла – «deactivate.bat».

Какие еще есть инструменты

Помимо упомянутых ранее модулей «venv» и «virtualenv», существуют более современные инструменты, которые обеспечивают более гибкое управление проектами на Python, включая работу с виртуальными окружениями:

Poetry

Poetry – это инструмент для управления зависимостями и упрощения процесса управления проектами на языке программирования Python. Он предоставляет средства для определения зависимостей проекта, управления версиями библиотек, создания виртуальных окружений и упрощения процесса разработки.

Преимущества:

  1. Poetry берет на себя всю рутинную работу с библиотеками внутри виртуальной среды, включая установку, обновление и публикацию. Это особенно полезно, когда вам оказывается мало возможностей «pip». 
  2. Создание и упаковка приложения реализованы при помощи всего одной команды.
  3. Кроме того, команда «poetry init» позволяет инициализировать проект в уже созданной директории, и её можно выполнить прямо из этой директории.
  4. Poetry также поддерживает публикацию проектов в частных репозиториях, отслеживание зависимостей, а также контроль их версий.
  5. Этот инструмент облегчает работу на собственных виртуальных серверах, обеспечивая надежную изоляцию проектов. 

Для начала работы с Poetry вам нужно установить его на своей системе. Вы можете сделать это с помощью команды:

pip install poetry

После установки вы можете создать новый проект с помощью команды «poetry new» и начать использовать Poetry для управления вашим проектом:

poetry new project

Где «project» – это название вашего проекта. 

Pipenv

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

Он объединяет функции управления виртуальными окружениями с помощью «virtualenv» и управления зависимостями с использованием «pip».

Преимущества:

  1. Pipenv использует файлы «Pipfile» и «Pipfile.lock» для отслеживания зависимостей вашего проекта. В «Pipfile» вы определяете зависимости и их версии, а «Pipfile.lock» содержит точные версии зависимостей для воспроизводимости среды и позволяет закреплять версии библиотек, что важно для безопасности разрабатываемых приложений. 
  2. Он автоматически создает виртуальное окружение для каждого проекта. Это позволяет изолировать зависимости проекта от системных библиотек и других проектов.
  3. Pipenv стремится сделать управление зависимостями более простым для разработчиков, предоставляя четкое и удобочитаемое API.
  4. Pipenv использует pip для установки пакетов, поэтому он совместим с уже существующими инструментами и репозиториями Python.

Для начала работы с Pipenv в вашем проекте нужно установить его на своей системе:

pip install pipenv

Затем вы можете создать новый проект с помощью команды:

pipenv install

Это создаст виртуальное окружение и установит зависимости, определенные в файле Pipfile.

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

Заключение

Создание виртуального окружения в Python – это важный этап в разработке проектов, который обеспечивает изоляцию зависимостей и предотвращает конфликты между версиями библиотек. 

Использование инструментов «virtualenv», «venv», «virtualenvwrapper», «Poetry» или «Pipenv» предоставляет разработчикам гибкость и удобство в управлении окружением, а также обеспечивает порядок в каждом проекте. Выбор подходящего инструмента зависит от конкретных потребностей проекта и ваших предпочтений.