Виртуальное окружение в Python — это инструмент, который позволяет создать изолированную среду для работы с проектами. Оно полезно, когда вам нужно использовать разные версии библиотек или пакетов для разных проектов, не влияя на глобальные настройки Python и не создавая конфликтов между проектами.
Изоляция зависимостей:
Когда вы работаете над несколькими проектами, каждый из которых может требовать разные версии одной и той же библиотеки, виртуальное окружение помогает избежать конфликтов. Например, один проект может нуждаться в версии библиотеки numpy
1.20, а другой — в версии 1.25. Если бы все проекты использовали одну глобальную среду, такая ситуация привела бы к проблемам. Виртуальные окружения позволяют каждому проекту иметь свою собственную копию библиотек.
Управление зависимостями:
Виртуальные окружения упрощают управление зависимостями проекта. Внутри окружения вы можете точно указать, какие библиотеки и какие их версии нужны для работы вашего проекта. Например, для установки нужных библиотек используется файл requirements.txt
, где перечислены все зависимости. Это помогает другим разработчикам или вам самим в будущем воссоздавать точную рабочую среду.
Чистота системы:
Если устанавливать все библиотеки в глобальную систему Python, она может быстро стать перегруженной, особенно если вы работаете над несколькими проектами с разными требованиями. Виртуальные окружения позволяют избежать загрязнения глобальной среды и делают систему более чистой и организованной.
Управление версиями Python:
Виртуальные окружения позволяют использовать разные версии Python для разных проектов. Например, один проект может использовать Python 3.8, а другой — Python 3.10, и оба будут работать в своих изолированных окружениях.
Создание виртуального окружения:
Чтобы создать виртуальное окружение, нужно использовать команду venv
, которая встроена в Python. Откройте терминал (или командную строку) и перейдите в папку с вашим проектом. Выполните команду:
python -m venv myenv
Здесь myenv
— это название виртуального окружения. Вы можете выбрать любое имя. Эта команда создаст в текущей папке новую директорию с виртуальным окружением, в которой будут храниться все установленные библиотеки.
Активация виртуального окружения:
После создания окружения его нужно активировать, чтобы начать работать в изолированной среде.
myenv\Scripts\activate
source myenv/bin/activate
После активации вы увидите, что имя вашего виртуального окружения появляется в начале строки терминала, например:
(myenv) $
Это означает, что вы находитесь внутри виртуального окружения.
Установка библиотек:
Пока окружение активно, все библиотеки, которые вы установите с помощью pip
, будут добавляться именно в это виртуальное окружение, а не в глобальную систему. Например, для установки библиотеки requests
выполните команду:
pip install requests
Деактивация виртуального окружения:
Когда вы завершили работу над проектом, можно выйти из виртуального окружения. Для этого достаточно в терминале набрать:
deactivate
После этого вы вернетесь в глобальную среду Python.
Создание и использование файла requirements.txt
:
Если вы хотите поделиться проектом с другими людьми или установить все необходимые библиотеки на другом компьютере, можно использовать файл requirements.txt
, который содержит список всех зависимостей проекта.
Чтобы создать такой файл, выполните команду:
pip freeze > requirements.txt
Чтобы установить все библиотеки, указанные в этом файле, на другом компьютере (или в другом окружении), используйте команду:
pip install -r requirements.txt
Создайте новый проект и зайдите в его папку:
mkdir myproject
cd myproject
Создайте виртуальное окружение:
python -m venv venv
Активируйте виртуальное окружение:
venv\Scripts\activate
source venv/bin/activate
Установите нужные библиотеки:
pip install flask numpy
Деактивируйте окружение:
deactivate
Виртуальное окружение — это отличный инструмент для разработчика, позволяющий поддерживать чистоту и порядок в проектах, а также избегать конфликтов между зависимостями. Это очень важно, когда работаешь над несколькими проектами или с разными версиями библиотек. Используя виртуальное окружение, вы создаете изолированную среду, в которой удобно управлять зависимостями, версиями библиотек и поддерживать проект в рабочем состоянии.