Почему новички ломают Python: Полное руководство по виртуальным окружениям (venv, pip)

Почему новички ломают Python: Полное руководство по виртуальным окружениям (venv, pip)

Введение

Каждый второй новичок в Python сталкивался с ситуацией: вчера программа работала, сегодня после установки крутой библиотеки — сыпется ошибками. Или, открыв старый проект, вы видите красный текст ModuleNotFoundError. Знакомо?

Проблема в том, что Python по умолчанию устанавливает все библиотеки в глобальное окружение. Это похоже на склад, куда все скидывают вещи в кучу. Рано или поздно возникает конфликт: одному проекту нужна версия библиотеки 1.0, а другому — 2.0. Python не умеет работать с двумя версиями одновременно.

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

Основная часть

1. Что такое виртуальное окружение?

Виртуальное окружение — это изолированная папка с собственной копией Python и собственной папкой site-packages (где хранятся библиотеки). Это как отдельный "рабочий стол" для каждого вашего проекта.

Когда вы активируете окружение, все команды pip install работают только внутри него и не влияют на другие проекты и систему.

2. Инструменты для работы

Самый стандартный инструмент встроен в сам Python — это модуль venv. Он доступен по умолчанию в Python 3.3 и выше. Существуют и более продвинутые инструменты (poetry, pipenv), но начать стоит именно с venv.

3. Как создать и активировать окружение

Процесс состоит из трех простых шагов.

Шаг 1: Создание

Откройте терминал (командную строку) в папке вашего проекта и выполните:bash# Для Windows / Mac / Linux python -m venv venv

Здесь venv после -m — это название модуля, а второй venv — это имя папки, где будет лежать окружение (обычно называют venv или .venv).

Шаг 2: Активация

В зависимости от вашей операционной системы команды различаются:

Windows (CMD):venv\Scripts\activate.bat

Windows (PowerShell):venv\Scripts\Activate.ps1Mac / Linux:bashsource venv/bin/activate

Mac / Linux:source venv/bin/activate

После активации в начале строки терминала появится префикс (venv). Это значит, что вы внутри.

Шаг 3: Установка библиотек

Теперь можно ставить библиотеки, которые нужны именно этому проекту:pip install requests django

4. Файл requirements.txt

Что делать, если вы хотите поделиться кодом с другом или залить его на GitHub? Ваши библиотеки не должны попадать в репозиторий (их много, они тяжелые). Вместо этого мы создаем файл со списком зависимостей.

Сохраняем список того, что установлено:pip freeze > requirements.txt

Другой разработчик, скачав ваш код, создаст свое окружение и установит всё одной командой:pip install -r requirements.txt

5. Жизненный пример

Представьте, что у вас есть два проекта:

Проект А (Блог на Django 3.2).Проект Б (Новый проект на Django 4.2).Если вы установите Django глобально, вы сможете работать только с одной версией. Блог на старой версии упадет.

Правильный сценарий:

Захожу в папку project_a, выполняю python -m venv venv_a, активирую, ставлю django==3.2.Открываю новое окно терминала, захожу в project_b, создаю venv_b, активирую, ставлю django==4.2.

Теперь проекты существуют параллельно и не мешают друг другу.

Заключение

Виртуальные окружения — это не прихоть профессионалов, а необходимый стандарт разработки. Они позволяют:Изолировать проекты: избежать конфликтов версий библиотек.Упростить переносимость: легко разворачивать проект на новом компьютере или сервере.

Сохранить чистоту системы: не засорять глобальный Python тысячами ненужных пакетов.Начните использовать python -m venv для каждого нового проекта, и вы заметите, как перестанете тратить часы на поиск "сломанных" зависимостей.

1