Кодирование, Python, Виртуальная среда

Преимущества кодирования в виртуальной среде

Сегодня мы поговорим о сложностях использования базовой среды в кодировании на Python и другой среде, называемой «виртуальными средами», для решения проблем. Кроме того, мы рассказываем, как управлять этими виртуальными средами и использовать их.

Проблемы возникают при использовании базового интерпретатора

Давайте вернемся в прошлое, когда мы начали изучать программирование на Python. Мы просто следуем нашим общим рекомендациям по установке python с официального веб-сайта python, который создаст для нас среду python для изучения кода, и мы начали изучать кодирование, используя эту установленную среду python.

Мы все знаем, что на языке Python нам нужно установить множество модулей, доступных в Интернете. Иногда мы также обновляем наши модули Python до более новой версии. При этом мы просто использовали интерпретатор Python, который мы изначально установили на наше устройство. Вскоре после пары дней кодирования мы обнаруживаем, что некоторые из наших предыдущих программ не работают.

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

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

По этим причинам мы столкнулись с беспорядком при обработке нашей базовой среды. Чтобы разобраться с этими проблемами, мы обращаемся за помощью к чему-то, что называется виртуальной средой.

Что такое виртуальная среда?

Виртуальная среда — это просто клон, созданный внутри исходной базовой среды Python, установленной на нашем устройстве, которую можно поддерживать независимо от базовой среды.

Предположим, мы работаем над проектом, который требует определенного типа модулей Python, особенно для проекта. Когда проект будет завершен, эта конкретная модель станет бесполезной. В этих условиях мы можем создать виртуальную среду внутри основного каталога проекта. Затем мы можем установить этот конкретный модуль (модули) во вновь созданную среду и построить на его основе весь наш проект. После завершения проекта мы можем деактивировать среду. Давайте посмотрим, как мы можем создать виртуальную среду с помощью командной строки (cmd).

Как создать виртуальную среду в windows cmd?

Предположим, у нас установлен наш базовый интерпретатор Python в папке C:/python/python_version1, и мы хотим использовать этот интерпретатор для создания виртуальной среды в папке проекта D:/user/project1. Предположим, имя виртуальной среды — project1venv, тогда команда cmd для создания виртуальной среды —

C:\user>D:
D:\>cd D:/user/project1
D:\user\project1>C:/python/python_version1 -m venv project1venv

После этого внутри D:/user/project1 будет создана папка виртуальной среды. Теперь, чтобы использовать эту среду, нам нужно получить доступ к этому. Когда мы пишем коды, мы используем какую-то IDE. Мы должны добавить путь к этой вновь созданной виртуальной среде в опции «Выбрать интерпретатор». Если мы хотим получить к нему доступ из cmd, нам нужно написать следующую строку кода.

D:\user\project1>cd project1venv/Scripts
D:\user\project1\project1venv\Scripts>activate
(project1venv) D:\user\project1\project1venv\Scripts>

Как только мы активируем среду, мы видим, что имя среды появилось перед приглашением. Теперь, если мы хотим установить какой-либо модуль внутри среды, мы должны написать:

(project1venv) D:\user\project1>pip install numpy

Это установит пакет numpy внутри среды project1venv. Для деактивации окружения пишем

(project1venv) D:\user\project1>deactivate
D:\user\project1>

Преимущества использования виртуальной среды

Мы получаем много преимуществ, когда используем настройку виртуальной среды.

  • Используя виртуальную среду, мы можем поддерживать модули для конкретных проектов независимо от наших базовых сред.
  • Есть несколько конкретных модулей, которые мы используем для определенных проектов, и мы почти никогда не используем их снова. В этом случае нет необходимости хранить этот модуль в базовой среде. Мы можем установить их внутри виртуальной среды, которую мы можем деактивировать, как только наш проект будет завершен.
  • Здесь нам не нужно беспокоиться о версии пакетов, которые конкретно используются в проекте. Мы всегда можем проверить в среде наличие доступных пакетов и их версий, а также сохранить их запись в «requirement.txt». Итак, если мы переносим наш код на чужое устройство, то даже если его модуль и версия в его базовой среде не совпадают, он всегда может создать виртуальную среду и использовать этот «requirement.txt» для загрузки и установки всех необходимых модулей с указанную версию, не нарушая его базовую среду.