JavaRush /Курсы /Модуль 3: Django /Настройка виртуального окружения

Настройка виртуального окружения

Модуль 3: Django
1 уровень , 3 лекция
Открыта

В предыдущей лекции мы установили Python и Django на наши рабочие машины. Все идет отлично, и вы уже близки к тому, чтобы создать свой первый проект на Django. Но прежде, чем мы отправимся дальше, нужно освоить нечто очень важное. Эта штука спасет вам нервы, время и, возможно, вашу дружбу с коллегами. Давайте разберемся в виртуальных окружениях и научимся их настраивать.

Представьте, что вы готовите пиццу, но у вас на кухне 10 банок томатного соуса. Половина из них просрочена, другая половина предназначена для разных рецептов (например, супов или пасты). Сначала это кажется не так уж страшным, но потом вы начинаете путаться, какой соус для чего использовать. Примерно так же выглядят конфликты зависимостей Python-библиотек.

Когда вы разрабатываете разные проекты на Python, каждый из них может использовать разные версии библиотек или даже самого Python. Если все эти зависимости хранятся в одном общем пространстве, велика вероятность конфликта.

Пример:

  • Проект А использует Django 5.1.
  • Проект B работает только с Django 4.2.
  • Установка неправильной версии сломает один из проектов.

Решение? Виртуальные окружения! Они изолируют зависимости для каждого проекта. Каждый проект получает собственную кухню с собственными ингредиентами.

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

Виртуальное окружение — это изолированное пространство, где хранятся библиотеки и зависимости вашего проекта. Оно позволяет вам:

  1. Использовать разные версии библиотек в разных проектах.
  2. Держать ваш глобальный Python аккуратным и минимально загруженным.
  3. Избежать фраз "ну, на моей машине это работает" (или хотя бы уменьшить количество таких ситуаций).

Как настроить виртуальное окружение?

  1. Создание виртуального окружения

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

    • Откройте терминал (аналогично командной строке на Windows).
    • Перейдите в директорию вашего проекта. Например:

      cd path/to/your/project
    • Запустите команду создания виртуального окружения:

      python -m venv venv
      • venv в конце — это имя папки, в которой будет храниться виртуальное окружение. Вы можете назвать ее как угодно (например, env, .venv), но имя venv стало стандартным.

После выполнения этого шага в папке проекта появится директория venv со следующей структурой:

venv/
├── Include/
├── Lib/
├── Scripts/ (или bin/ на Linux/macOS)
└── pyvenv.cfg

Честно, пока это выглядит, как магия, но не спешим: дальше будет понятнее.

  • Вы правы, очень хорошее замечание!
  • Действительно, в инструкции должен быть описан полный порядок действий. Давайте исправим:

    Активируем виртуальное окружение

    После создания окружения его нужно активировать.

    Важно:

    перед активацией убедитесь, что вы находитесь в папке, где создали виртуальное окружение. Используйте команду cd:

    # перейдите в папку проекта
    cd путь/к/вашему/проекту
    

    Теперь активируйте окружение:

    На Windows:

    venv\Scripts\activate
    

    На macOS/Linux:

    source venv/bin/activate
    # или более короткий вариант
    . venv/bin/activate

    Когда окружение активировано, в начале строки терминала появится (venv):

    (venv) user@machine:~/project$
    

    Этот venv говорит, что вы сейчас работаете внутри виртуального окружения. Все команды установки библиотек pip install будут применяться только к этому окружению.

    Частые проблемы:

    • Убедитесь, что вы в нужной папке: ls или dir покажет папку venv
    • На macOS может потребоваться: chmod +x venv/bin/activate

    Подсказка: чтобы выйти из окружения, наберите deactivate

    3. Установка Django в виртуальном окружении

    Теперь, когда виртуальное окружение активировано, установим Django только для нашего проекта:

    pip install django
    

    После установки выполните команду:

    pip list
    

    Вы увидите список установленных библиотек. Там должна быть только Django и её зависимости, например:

    Package    Version
    ---------- -------
    Django     5.1
    pytz       2025.1
    sqlparse   0.5.0

    Обратите внимание: если вы выполните такую же команду pip list, но вне активного окружения, то библиотеки могут отсутствовать или отличаться. Это и есть изоляция!

    4. Деактивация виртуального окружения

    Чтобы покинуть виртуальное окружение (и вернуться в "глобальный Python"), просто выполните команду:

    deactivate
    

    После этого ваш терминал снова станет обычным, например:

    user@machine:~/project$
    

    5. Работа с разными проектами

    Если у вас несколько проектов, создавайте отдельное виртуальное окружение для каждого из них. Просто следуйте тому же процессу:

    1. Создайте отдельную папку для нового проекта.
    2. Создайте новое виртуальное окружение.
    3. Активируйте его и установите зависимости, нужные только этому проекту.

    Практическое задание

    Шаг 1: Создайте директорию my_django_project

    Создайте папку для вашего проекта:

    На Windows/macOS/Linux:

    mkdir my_django_project
    cd my_django_project
    

    Шаг 2: Создайте виртуальное окружение

    python -m venv venv
    

    Шаг 3: Активируйте виртуальное окружение

    На Windows:

    venv\Scripts\activate
    

    На macOS/Linux:

    source venv/bin/activate
    

    Шаг 4: Установите Django

    pip install django
    

    Шаг 5: Убедитесь, что Django установлен

    pip list
    

    Типичные ошибки и их решение

    Ошибка: Команда python не работает

    Если при выполнении python вы получаете ошибку "Command not found", попробуйте вместо этого:

    • На macOS/Linux: python3.
    • На Windows: проверьте, добавлен ли Python в системные переменные PATH.

    Ошибка: Python не устанавливает библиотеки в виртуальное окружение

    Если при установке пакетов они попадают в глобальный Python, скорее всего, вы забыли активировать виртуальное окружение. Проверьте, что в терминале отображается название окружения в скобках (например, venv).

    Ошибка: venv не создается

    Если команда python -m venv выдает ошибку, возможно, у вас старая версия Python. Убедитесь, что у вас Python версии 3.6 или выше.

    Зачем все это нужно?

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

    Теперь вы готовы к работе с реальными Python-проектами, готовыми для разработки и масштабирования. И помните: порядок в виртуальных окружениях — это порядок в голове и на работе.

    1
    Задача
    Модуль 3: Django, 1 уровень, 3 лекция
    Недоступна
    Создание виртуального окружения
    Создание виртуального окружения
    1
    Задача
    Модуль 3: Django, 1 уровень, 3 лекция
    Недоступна
    Активация виртуального окружения и установка зависимости
    Активация виртуального окружения и установка зависимости
    Комментарии
    ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
    ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ