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