Как активировать и деактивировать виртуальное окружение Python

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/NetworkingGroup(["Networking"]) python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/PythonStandardLibraryGroup -.-> python/os_system("Operating System and System") python/NetworkingGroup -.-> python/http_requests("HTTP Requests") subgraph Lab Skills python/using_packages -.-> lab-397940{{"Как активировать и деактивировать виртуальное окружение Python"}} python/os_system -.-> lab-397940{{"Как активировать и деактивировать виртуальное окружение Python"}} python/http_requests -.-> lab-397940{{"Как активировать и деактивировать виртуальное окружение Python"}} end

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

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

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

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

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

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

Начиная с Python 3.3, в стандартной библиотеке есть модуль venv, который является рекомендуемым инструментом для создания виртуальных окружений. Давайте создадим свое первое виртуальное окружение:

  1. Сначала убедитесь, что вы находитесь в директории проекта:

    mkdir -p ~/project/python_env_demo
    cd ~/project/python_env_demo
  2. Создайте новое виртуальное окружение с именем myenv, выполнив следующие команды:

    sudo apt-get update
    sudo apt-get install python3.10-venv -y
    python3 -m venv myenv
  3. Давайте посмотрим, что было создано:

    ls -la myenv

    Вы должны увидеть вывод, похожий на следующий:

    total 20
    drwxrwxr-x 5 labex labex 4096 Sep 14 10:00 .
    drwxrwxr-x 3 labex labex 4096 Sep 14 10:00 ..
    drwxrwxr-x 2 labex labex 4096 Sep 14 10:00 bin
    drwxrwxr-x 2 labex labex 4096 Sep 14 10:00 include
    drwxrwxr-x 3 labex labex 4096 Sep 14 10:00 lib
    -rw-rw-r-- 1 labex labex   70 Sep 14 10:00 pyvenv.cfg

Команда venv создала директорию myenv с несколькими поддиректориями. Самые важные из них:

  • bin: Содержит интерпретатор Python, pip и скрипты активации.
  • lib: Содержит установленные пакеты для этого окружения.
  • pyvenv.cfg: Файл конфигурации виртуального окружения.

Теперь вы успешно создали виртуальное окружение Python, готовое к активации и использованию.

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

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

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

  1. Убедитесь, что вы находитесь в директории проекта:

    cd ~/project/python_env_demo
  2. Активируйте виртуальное окружение, выполнив следующую команду:

    source myenv/bin/activate
  3. Обратите внимание, что приглашение командной строки изменилось. Теперь в начале приглашения в скобках отображается имя виртуального окружения:

    (myenv) labex:python_env_demo/ $

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

Проверка активации

Чтобы убедиться, что ваше виртуальное окружение активировано и работает корректно, вы можете проверить следующее:

  1. Какой интерпретатор Python используется:

    which python

    Вы должны увидеть вывод, похожий на следующий:

    /home/labex/project/python_env_demo/myenv/bin/python

    Это показывает, что команда python теперь указывает на интерпретатор Python в вашем виртуальном окружении, а не на системный.

  2. Какой pip (менеджер пакетов Python) используется:

    which pip

    Вы должны увидеть вывод, похожий на следующий:

    /home/labex/project/python_env_demo/myenv/bin/pip

    Это подтверждает, что вы будете устанавливать пакеты в ваше виртуальное окружение, а не в системный Python.

  3. Проверьте версию Python:

    python --version

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

Теперь вы успешно активировали виртуальное окружение Python. Любые команды Python, которые вы запускаете, и любые пакеты, которые вы устанавливаете, будут использовать это изолированное окружение, а не системную установку Python.

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

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

Установка пакетов с помощью pip

  1. Убедитесь, что ваше виртуальное окружение по-прежнему активировано. В начале приглашения командной строки должно быть (myenv). Если оно не активировано, активируйте его с помощью следующей команды:

    source myenv/bin/activate
  2. Давайте установим простой пакет requests, который обычно используется для выполнения HTTP-запросов:

    pip install requests

    Вы увидите вывод, показывающий процесс загрузки и установки.

  3. Проверьте, что пакет был установлен, проверив список установленных пакетов:

    pip list

    В списке должны быть requests и его зависимости:

    Package            Version
    ------------------ ---------
    certifi            2025.1.31
    charset-normalizer 3.4.1
    idna               3.10
    pip                22.0.2
    requests           2.32.3
    setuptools         59.6.0
    urllib3            2.3.0

Использование установленного пакета

Давайте создадим простой скрипт Python для тестирования пакета requests:

  1. Откройте редактор и создайте новый файл с именем test_requests.py в директории ~/project/python_env_demo:

    import requests
    
    response = requests.get('https://httpbin.org/get')
    print(f"Status Code: {response.status_code}")
    print(f"Content Type: {response.headers['content-type']}")
    print("\nResponse Body Preview:")
    print(response.text[:300] + "...")
  2. Сохраните файл и запустите его:

    python test_requests.py
    run test_requests.py
  3. Вы должны увидеть вывод, похожий на следующий:

    Status Code: 200
    Content Type: application/json
    
    Response Body Preview:
    {
    "args": {},
    "headers": {
    "Accept": "_/_",
    "Accept-Encoding": "gzip, deflate",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.32.3",
    "X-Amzn-Trace-Id": "Root=1-67ca4e9a-3b65928a0af016e74bc867b7"
    },
    "origin": "47.251.8.222",
    "url": "https://httpbin.org/g...

Это показывает, что пакет requests был успешно установлен в вашем виртуальном окружении и работает корректно.

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

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

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

  1. Убедитесь, что ваше виртуальное окружение в данный момент активировано. В начале приглашения командной строки должно быть (myenv).

  2. Чтобы деактивировать виртуальное окружение, просто выполните следующую команду:

    deactivate
  3. Обратите внимание, что приглашение командной строки вернулось к обычному виду. Префикс (myenv) исчез:

    labex:python_env_demo/ $

Проверка деактивации

Чтобы убедиться, что ваше виртуальное окружение деактивировано и вы вернулись к использованию системного Python, выполните следующие проверки:

  1. Проверьте, какой интерпретатор Python используется:

    which python3

    Вы должны увидеть вывод, похожий на следующий:

    /usr/bin/python3

    Это показывает, что команда python3 теперь указывает на глобальный интерпретатор Python системы.

  2. Попробуйте запустить скрипт, который мы создали ранее:

    python3 test_requests.py

    В зависимости от того, установлен ли пакет requests в системном Python, вы можете увидеть ошибку:

    Traceback (most recent call last):
      File "/home/labex/project/python_env_demo/test_requests.py", line 1, in <module>
        import requests
    ModuleNotFoundError: No module named 'requests'

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

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

Если вам снова нужно работать с проектом, вы можете легко повторно активировать виртуальное окружение:

source myenv/bin/activate

В приглашении командной строки снова появится (myenv), что означает, что виртуальное окружение активировано.

Сводка по распространённым командам для виртуальных окружений

Вот быстрый справочник по командам, которые мы рассмотрели:

Команда Описание
python3 -m venv myenv Создать новое виртуальное окружение с именем "myenv"
source myenv/bin/activate Активировать виртуальное окружение
pip install package_name Установить пакет в активном виртуальном окружении
pip list Показать список установленных пакетов в активном виртуальном окружении
deactivate Деактивировать текущее виртуальное окружение

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

Резюме

В этом практическом занятии вы научились основным навыкам работы с виртуальными окружениями Python:

  • Понимание концепции и преимуществ виртуальных окружений
  • Создание нового виртуального окружения с помощью модуля venv
  • Активация виртуального окружения для изоляции вашей работы с Python
  • Установка пакетов в виртуальном окружении с использованием pip
  • Тестирование установленных пакетов с помощью простого скрипта Python
  • Деактивация виртуального окружения после завершения работы с ним

Эти навыки являются основой хороших практик разработки на Python. Используя виртуальные окружения, вы можете:

  • Изолировать зависимости проектов друг от друга
  • Избегать конфликтов между разными версиями пакетов
  • Сделать свои проекты более воспроизводимыми и легкими для обмена
  • Поддерживать чистую и организованную среду разработки на Python

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