Как деактивировать Python venv

PythonBeginner
Практиковаться сейчас

Введение

Виртуальные окружения Python (Python virtual environments) необходимы для изолированного управления зависимостями проекта. Этот учебник проведет вас через процесс деактивации виртуального окружения, что позволит вам переключаться между проектами и поддерживать чистый рабочий процесс разработки.

Понимание виртуальных окружений

Прежде чем деактивировать (deactivating), давайте кратко рассмотрим, что такое виртуальное окружение (virtual environment) и почему оно важно.

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

Зачем использовать виртуальные окружения?

  • Изоляция (Isolation): Обеспечивает разделение зависимостей проектов.
  • Управление версиями (Version Management): Позволяет использовать разные версии Python для разных проектов.
  • Воспроизводимость (Reproducibility): Обеспечивает согласованность окружений на разных машинах.

Давайте создадим виртуальное окружение для демонстрационных целей. Откройте свой терминал и выполните следующие команды:

sudo apt update
sudo apt install -y python3.10-venv

Теперь создайте виртуальное окружение в вашем текущем каталоге (/home/labex/project):

python3 -m venv my_venv

Эта команда создает каталог с именем my_venv, содержащий файлы виртуального окружения.

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

source my_venv/bin/activate
Terminal showing activated venv

Вы заметите, что приглашение терминала изменится, чтобы указать, что виртуальное окружение активно (например, (my_venv) labex:project/ $).

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

Деактивация виртуального окружения (deactivating a virtual environment) — это просто. Просто используйте команду deactivate.

В вашем терминале введите:

deactivate

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

Проверка (Verification):

Чтобы убедиться, что виртуальное окружение деактивировано, вы можете проверить команду which python.

which python
/usr/bin/python

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

Переключение между проектами

Одна из основных причин использования виртуальных окружений (virtual environments) — это возможность легко переключаться между различными проектами с разными зависимостями.

Давайте смоделируем этот сценарий. Предположим, у вас есть два проекта: project_a и project_b, каждый со своим виртуальным окружением.

Сначала давайте создадим каталог для project_a и его виртуального окружения.

mkdir project_a
cd project_a
python3 -m venv venv_a

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

source venv_a/bin/activate

Вы должны увидеть (venv_a) в приглашении терминала.

Теперь давайте создадим каталог для project_b и его виртуального окружения. Сначала деактивируйте текущее окружение и вернитесь в корневой каталог проекта.

deactivate
cd ..
mkdir project_b
cd project_b
python3 -m venv venv_b

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

source venv_b/bin/activate

Вы должны увидеть (venv_b) в приглашении терминала.

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

Очистка

Чтобы очистить виртуальные окружения (virtual environments), созданные во время этой лабораторной работы (lab), вы можете просто удалить каталоги.

Сначала убедитесь, что вы не находитесь ни в одном виртуальном окружении. Если вы видите имя виртуального окружения в своей командной строке (например, (venv_b)), деактивируйте его:

deactivate

Теперь вернитесь в основной каталог проекта, если вы еще не там:

cd /home/labex/project

Наконец, удалите каталоги виртуальных окружений:

rm -rf my_venv project_a project_b

Эта команда удалит каталоги my_venv, project_a и project_b и их содержимое, включая виртуальные окружения.

Итог

В этой лабораторной работе (lab) вы узнали, как деактивировать виртуальное окружение (Python virtual environment) с помощью команды deactivate. Вы также изучили важность виртуальных окружений для управления зависимостями проекта и то, как эффективно переключаться между различными окружениями проектов. Этот навык имеет решающее значение для поддержания чистого и организованного процесса разработки (development workflow).