Аналогия
Если представлять программирование как стройку, то для каждой нового проекта нам нужны свои инструменты. Язык программирования и среда разработки считаются общими, а вот используемые пакетов (сгруппированный набор функций) могут отличаться. Например, для проекта с созданием чат-бота в Telegram мы будем использовать пакет с библиотекой telethon или python-telegram-bot, а в создание игры это может быть pygame. Также могут отличаться версии этих пакетов, и пакеты могут не работать со старыми версиями других пакетов, поэтому нужно как-то организовывать их между собой в рамках проекта.
Теория
Виртуальная среда (virtual environment) позволяет управлять проектами изолированно друг от друга:
- у каждого проекта могут быть свои зависимости;
- зависимости одного проекта не влияют на зависимости другого проекта.
Используемые инструменты
Это не обязательно, но я хочу подчеркнуть, что я использую Python версии 3.11.5 , а также среду разработки Visual Studio Code. Если вы ещё не скачали Python, то ознакомьтесь с предыдущей статьёй.
Создание проекта
Чтобы внедрять виртуальную среду создадим корневую папку проекта где-то у себя на диске. Я это буду делать через командую строку (Win + R и ввести cmd), так как всё остальное мы также будем делать через неё.
Введём следующие команды, чтобы создать папку проекта и переместиться в неё:
mkdir C:\Dev\Python\test_project
cd C:\Dev\Python\test_project
Создание виртуальной среды
Введём следующую команду, чтобы создать среду в рамках проекта. После её выполнения появится папка соответствующая названию виртуальной среды -"env" (сокращение от environment). "env" в команде это название среды, я не советую его менять, поскольку он удобно вводится и легче запоминается в будущем
py -m venv env
Активация виртуальной среды
Для закачки всех необходимых пакетов нужно активировать среду.
Введём эту команду. Совет: начните писать название "en" и нажмите Tab, тогда название подставится из существующих файлов в папке. После "\" идут файлы в выбранной папке, так что там тоже можно использовать Tab.
env\Scripts\activate
Теперь среда активирована и можно качать файлы. Введите следующую команду для проверки скаченных пакетов:
pip list
Скачивание пакетов
У нас нет пакетов, давайте скачаем пакет для создания бота в Telegram. Учтите, что для скачивания пакета в конкретное окружение нужно активировать его, что мы сделали в предыдущем шаге.
pip install python-telegram-bot
Сохранения имеющихся зависимостей
Если мы хотим поделиться списком зависимостей (отправить на другое устройство), стоит их упаковать, введя команду:
pip freeze > requirements.txt
Теперь, чтобы скачать упакованные зависимости, нужно перетащить созданный файл "requirements.txt" в нужную папку и ввести команду:
pip freeze > requirements.txt
Если мы выйдем из среды и запустим команду, то пакеты установятся в глобальную среду на устройстве.
Удаление пакетов
Теперь давайте удалим скаченный пакет для создания бота:
pip uninstall python-telegram-bot
Деактивация виртуальной среды
Когда мы закончили добавлять зависимости, стоит деактивировать среду, введя команду:
env\Scripts\deactivate.bat
Послесловие
Мы научились работать с пакетами в рамках виртуальной среды. Если остались вопросы или пожелания, то делитесь ими в комментариях, они помогут улучшить статью для других читателей.
Хорошего дня!