Введение
Виртуальные окружения Python являются важными инструментами для управления зависимостями в проектах на Python. Они создают изолированные пространства, в которых вы можете устанавливать пакеты без влияния на глобальную установку Python в системе. Эта изоляция помогает избежать конфликтов между разными проектами, которые могут требовать разных версий одного и того же пакета.
В этом практическом занятии (лабораторной работе) вы научитесь создавать, активировать и деактивировать виртуальные окружения Python. Эти навыки являются фундаментальными для разработчиков на Python и помогут вам поддерживать чистые, организованные и воспроизводимые среды разработки для своих проектов.
Понимание и создание виртуальных окружений Python
Прежде чем создать виртуальное окружение Python, давайте сначала разберемся, что это такое и почему они важны.
Что такое виртуальное окружение Python?
Виртуальное окружение Python представляет собой изолированную установку интерпретатора Python. Когда вы активируете виртуальное окружение, все пакеты, которые вы устанавливаете, будут помещены в приватный каталог этого окружения, а не в глобальную систему Python. Эта изоляция предоставляет несколько преимуществ:
- Вы можете использовать разные версии одного и того же пакета для разных проектов.
- Вы можете легко поделиться точным списком необходимых пакетов с другими.
- Вы можете поддерживать чистоту и порядок в системном Python.
Создание первого виртуального окружения
Начиная с Python 3.3, в стандартной библиотеке есть модуль venv, который является рекомендуемым инструментом для создания виртуальных окружений. Давайте создадим свое первое виртуальное окружение:
Сначала убедитесь, что вы находитесь в директории проекта:
mkdir -p ~/project/python_env_demo cd ~/project/python_env_demoСоздайте новое виртуальное окружение с именем
myenv, выполнив следующие команды:sudo apt-get update sudo apt-get install python3.10-venv -y python3 -m venv myenvДавайте посмотрим, что было создано:
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.
Как активировать виртуальное окружение
Убедитесь, что вы находитесь в директории проекта:
cd ~/project/python_env_demoАктивируйте виртуальное окружение, выполнив следующую команду:
source myenv/bin/activateОбратите внимание, что приглашение командной строки изменилось. Теперь в начале приглашения в скобках отображается имя виртуального окружения:
(myenv) labex:python_env_demo/ $Этот визуальный индикатор помогает вам помнить, что вы работаете в виртуальном окружении.
Проверка активации
Чтобы убедиться, что ваше виртуальное окружение активировано и работает корректно, вы можете проверить следующее:
Какой интерпретатор Python используется:
which pythonВы должны увидеть вывод, похожий на следующий:
/home/labex/project/python_env_demo/myenv/bin/pythonЭто показывает, что команда
pythonтеперь указывает на интерпретатор Python в вашем виртуальном окружении, а не на системный.Какой
pip(менеджер пакетов Python) используется:which pipВы должны увидеть вывод, похожий на следующий:
/home/labex/project/python_env_demo/myenv/bin/pipЭто подтверждает, что вы будете устанавливать пакеты в ваше виртуальное окружение, а не в системный Python.
Проверьте версию Python:
python --versionВывод покажет версию Python, используемую в вашем виртуальном окружении.
Теперь вы успешно активировали виртуальное окружение Python. Любые команды Python, которые вы запускаете, и любые пакеты, которые вы устанавливаете, будут использовать это изолированное окружение, а не системную установку Python.
Установка пакетов в виртуальном окружении
Одно из главных преимуществ виртуальных окружений - это возможность устанавливать и управлять пакетами Python, изолированными от глобальной системы Python. Давайте узнаем, как устанавливать пакеты в активированном виртуальном окружении.
Установка пакетов с помощью pip
Убедитесь, что ваше виртуальное окружение по-прежнему активировано. В начале приглашения командной строки должно быть
(myenv). Если оно не активировано, активируйте его с помощью следующей команды:source myenv/bin/activateДавайте установим простой пакет
requests, который обычно используется для выполнения HTTP-запросов:pip install requestsВы увидите вывод, показывающий процесс загрузки и установки.
Проверьте, что пакет был установлен, проверив список установленных пакетов:
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:
Откройте редактор и создайте новый файл с именем
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] + "...")Сохраните файл и запустите его:
python test_requests.py
Вы должны увидеть вывод, похожий на следующий:
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. Этот процесс называется деактивацией.
Как деактивировать виртуальное окружение
Убедитесь, что ваше виртуальное окружение в данный момент активировано. В начале приглашения командной строки должно быть
(myenv).Чтобы деактивировать виртуальное окружение, просто выполните следующую команду:
deactivateОбратите внимание, что приглашение командной строки вернулось к обычному виду. Префикс
(myenv)исчез:labex:python_env_demo/ $
Проверка деактивации
Чтобы убедиться, что ваше виртуальное окружение деактивировано и вы вернулись к использованию системного Python, выполните следующие проверки:
Проверьте, какой интерпретатор Python используется:
which python3Вы должны увидеть вывод, похожий на следующий:
/usr/bin/python3Это показывает, что команда
python3теперь указывает на глобальный интерпретатор Python системы.Попробуйте запустить скрипт, который мы создали ранее:
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 использование виртуальных окружений станет естественной частью вашего рабочего процесса разработки.



