- Что такое виртуальное окружение
- Как создать виртуальное окружение в Python 3 с помощью venv
- Другие инструменты
- Как создать виртуальное окружение при помощи virtualenv
- Poetry
- Pipenv
Что такое виртуальное окружение
Виртуальное окружение (Virtual Environment) – это изолированная среда, которая создается для разработки и выполнения программного обеспечения. Она позволяет разработчикам изолировать зависимости, библиотеки и пакеты для каждого проекта, таким образом, минимизируя конфликты между различными проектами.
Основные концепции виртуальных окружений:
- Изоляция. Виртуальная среда создается отдельно от системной среды, что позволяет избежать конфликтов между зависимостями разных проектов. Каждое виртуальное окружение содержит свой собственный набор библиотек и зависимостей.
- Воспроизводимость. Виртуальные окружения обеспечивают воспроизводимость окружения разработки. Это значит, что другие разработчики могут создать аналогичное окружение и точно воспроизвести вашу среду разработки, что делает совместную работу и развертывание проектов более надежными.
- Управление зависимостями. Вы можете легко устанавливать, обновлять и удалять зависимости внутри виртуального окружения, не затрагивая системные зависимости. Так, можно легко управлять версиями библиотек и пакетов, которые используются в вашем проекте.
- Инструменты для создания. Существуют различные инструменты для создания и управления виртуальными окружениями: «virtualenv» для Python, «venv», «conda», и другие.
- Использование в разработке. Виртуальные окружения особенно полезны в разработке, где разработчики могут иметь несколько проектов, каждый из которых зависит от разных версий библиотек и фреймворков.
Применение виртуальных окружений особенно распространено в разработке на 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
Чтобы создать виртуальное окружение, выполните следующие шаги:
- Откройте командную строку (Windows) или терминал (Linux/macOS)
- Перейдите в каталог, в котором вы хотите создать виртуальное окружение.
- Выполните следующую команду для создания виртуального окружения:
python -m venv env
Где «env» – это имя вашего виртуального окружения, и вы можете выбрать любое имя):
Эта команда создаст виртуальное окружение с выбранным именем в текущем каталоге.
Шаг 3. Активируйте виртуальную среду
- Активация виртуального окружения происходит с помощью различных команд. Выберите подходящую в зависимости от вашей операционной системы.
Windows:
На Windows вам нужно выполнить следующую команду:
venv\Scripts\activate.bat
Linux / macOS:
На Linux и macOS, для активации виртуального окружения используется другая команда:
source venv/bin/activate
Когда виртуальное окружение успешно активировано, вы увидите информацию с названием окружения в начале командной строки. Например:
(venv) root@purplegate:/var/test#
Эта строка означает, что теперь вы находитесь в изолированной среде, и можете начать работу над своим проектом, используя только зависимости, установленные в этом виртуальном окружении.
Другие инструменты
Конечно, «venv» – это современный инструмент для создания виртуальных сред в Python, но он доступен только начиная с версии Python 3.
Однако, что делать тем, кто использует более старые версии Python? В этом случае существуют альтернативные инструменты, которые не только обладают различными полезными функциями, но и могут использоваться в старых версиях языка.
Давайте кратко рассмотрим эти альтернативы, а затем подробнее изучим наиболее популярные из них.
- «virtualenv» – это инструмент для создания изолированных Python-окружений. Он позволяет вам создавать отдельные окружения для каждого проекта, чтобы избежать конфликтов зависимостей между различными проектами. В дальнейшем мы предоставим инструкцию по его использованию.
- «pyenv» – это инструмент для управления установками различных версий интерпретатора Python на вашей системе. Он предоставляет возможность легко переключаться между разными версиями Python, устанавливать новые версии, а также управлять версиями Python для конкретных проектов.
В отличие от «virtualenv», который создает изолированные окружения для проектов, «pyenv» фокусируется на управлении самими версиями Python.
- «virtualenvwrapper» – это расширение для «virtualenv», которое предоставляет удобные инструменты для управления виртуальными окружениями в Python. Он упрощает создание, удаление и переключение между виртуальными окружениями, а также предоставляет дополнительные функции для более удобной работы с проектами.
«Virtualenvwrapper» удобен, так как позволяет легко переключаться между виртуальными средами и использовать различные плагины для расширения его функциональности.
Выбор инструмента зависит от ваших конкретных потребностей и версии Python, с которой вы работаете. Наиболее популярным и универсальным вариантом является «virtualenv», а потому ниже мы описали инструкцию по его использованию.
Как создать виртуальное окружение при помощи virtualenv
Рассмотрим этот процесс на примере операционной системы Linux. Тем не менее запуск «virtualenv» в Windows выполняется практически таким же образом. Единственное отличие заключается в путях, которые будут использованы, и в скриптах. Но это мы рассмотрим отдельно.
- Вы можете загрузить исходные коды приложения и установить их вручную, но проще всего воспользоваться менеджером «pip».
В этом случае достаточно выполнить следующую команду в консоли:
pip install virtualenv
- Создайте виртуальную среду с помощью команды:
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.
- Активируйте виртуальную среду. В разных операционных системах для этого есть разные команды:
Linux/macOS:
source env/bin/activate
Windows:
env\Scripts\activate.bat
Где «env» – это имя вашего виртуального окружения. Вы можете выбрать любое имя.
При успешной активации в начале появившейся строки вы увидите название вашей виртуальной среды:
- Если создать виртуальную среду с использованием ключа «--system-site-packages», то вы получите доступ к общему хранилищу пакетов в рамках вашей среды.
Для этого используется следующая команда:
virtualenv --system-site-packages env
Важно отметить, что путь к хранилищу будет разным в Linux и Windows.
Linux:
/usr/lib/python3.9/site-packages
Windows:
\Python39\Lib\site-packages
Цифры версии могут отличаться.
- После завершения работы с программой необходимо правильно выйти из виртуальной среды.
- В Linux это делается командой «deactivate».
- В Windows с использованием пакетного файла – «deactivate.bat».
Какие еще есть инструменты
Помимо упомянутых ранее модулей «venv» и «virtualenv», существуют более современные инструменты, которые обеспечивают более гибкое управление проектами на Python, включая работу с виртуальными окружениями:
Poetry
Poetry – это инструмент для управления зависимостями и упрощения процесса управления проектами на языке программирования Python. Он предоставляет средства для определения зависимостей проекта, управления версиями библиотек, создания виртуальных окружений и упрощения процесса разработки.
Преимущества:
- Poetry берет на себя всю рутинную работу с библиотеками внутри виртуальной среды, включая установку, обновление и публикацию. Это особенно полезно, когда вам оказывается мало возможностей «pip».
- Создание и упаковка приложения реализованы при помощи всего одной команды.
- Кроме того, команда «poetry init» позволяет инициализировать проект в уже созданной директории, и её можно выполнить прямо из этой директории.
- Poetry также поддерживает публикацию проектов в частных репозиториях, отслеживание зависимостей, а также контроль их версий.
- Этот инструмент облегчает работу на собственных виртуальных серверах, обеспечивая надежную изоляцию проектов.
Для начала работы с Poetry вам нужно установить его на своей системе. Вы можете сделать это с помощью команды:
pip install poetry
После установки вы можете создать новый проект с помощью команды «poetry new» и начать использовать Poetry для управления вашим проектом:
poetry new project
Где «project» – это название вашего проекта.
Pipenv
Pipenv – это инструмент управления зависимостями для языка программирования Python. Он создан для облегчения управления зависимостями проектов, включая установку, обновление и удаление пакетов. Pipenv также предоставляет удобные инструменты для создания виртуальных окружений и отслеживания версий зависимостей.
Он объединяет функции управления виртуальными окружениями с помощью «virtualenv» и управления зависимостями с использованием «pip».
Преимущества:
- Pipenv использует файлы «Pipfile» и «Pipfile.lock» для отслеживания зависимостей вашего проекта. В «Pipfile» вы определяете зависимости и их версии, а «Pipfile.lock» содержит точные версии зависимостей для воспроизводимости среды и позволяет закреплять версии библиотек, что важно для безопасности разрабатываемых приложений.
- Он автоматически создает виртуальное окружение для каждого проекта. Это позволяет изолировать зависимости проекта от системных библиотек и других проектов.
- Pipenv стремится сделать управление зависимостями более простым для разработчиков, предоставляя четкое и удобочитаемое API.
- Pipenv использует pip для установки пакетов, поэтому он совместим с уже существующими инструментами и репозиториями Python.
Для начала работы с Pipenv в вашем проекте нужно установить его на своей системе:
pip install pipenv
Затем вы можете создать новый проект с помощью команды:
pipenv install
Это создаст виртуальное окружение и установит зависимости, определенные в файле Pipfile.
Каждый из этих инструментов заслуживает отдельного рассмотрения, но их функциональность выходит за рамки этой статьи. Поэтому мы ограничимся основными аспектами этих продуктов.
Заключение
Создание виртуального окружения в Python – это важный этап в разработке проектов, который обеспечивает изоляцию зависимостей и предотвращает конфликты между версиями библиотек.
Использование инструментов «virtualenv», «venv», «virtualenvwrapper», «Poetry» или «Pipenv» предоставляет разработчикам гибкость и удобство в управлении окружением, а также обеспечивает порядок в каждом проекте. Выбор подходящего инструмента зависит от конкретных потребностей проекта и ваших предпочтений.