0Pricing
Python Academy · Урок

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

Разберитесь в конфликтах зависимостей и поймите, почему изоляция необходима.

«Зачем нужны виртуальные окружения» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Введение

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

Проблема глобальной установки

По умолчанию pip устанавливает пакеты в системный Python. Проекту A нужен requests 2.25, а проекту B — 2.28: конфликт!
# Without venv:
# pip install requests==2.25  -> global
# pip install requests==2.28  -> overwrites 2.25!
print('global conflict demo')

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

venv — это изолированная установка Python в отдельном каталоге. Каждый проект получает собственные пакеты, независимые от других проектов.
# venv creates:
# project/
#   .venv/
#     bin/python     (isolated Python)
#     lib/site-packages/  (project packages)
print('venv structure')

Воспроизводимость

С venv и requirements.txt любой пользователь может воссоздать в точности то же окружение: pip install -r requirements.txt
# pip freeze > requirements.txt
# # Later, on another machine:
# python -m venv .venv
# pip install -r requirements.txt
print('reproducible env')

Изоляция для безопасности

Установка пакетов в venv не влияет на системный Python. Права sudo или администратора не нужны. Системные инструменты не будут повреждены.
# System Python is untouched:
# /usr/bin/python -> system packages
# .venv/bin/python -> project packages only
print('security isolation')

CI/CD и Docker

В CI/CD и контейнерах создавайте новое venv для каждой сборки, чтобы обеспечить чистое и воспроизводимое окружение.
# Dockerfile pattern:
# RUN python -m venv /opt/venv
# RUN /opt/venv/bin/pip install -r requirements.txt
print('ci/cd demo')

Одно venv на проект

Используйте одно venv для каждого проекта и храните его в .venv/ в корневом каталоге проекта. Никогда не добавляйте его в систему контроля версий.
# Add to .gitignore:
# .venv/
# __pycache__/
print('gitignore tip')

Системные, пользовательские и venv site-packages

Python ищет пакеты в следующем порядке: site-packages venv → пользовательские пакеты → глобальные пакеты. После активации venv имеет приоритет.
import sys
print('\n'.join(p for p in sys.path if 'site' in p))

pyenv для управления версиями Python

pyenv управляет несколькими версиями Python (3.10, 3.11, 3.12). Используйте его вместе с venv для полной изоляции.
# pyenv install 3.12.0
# pyenv local 3.12.0
# python -m venv .venv
print('pyenv demo')

conda как альтернатива

conda (Anaconda/Miniconda) управляет и пакетами, и версиями Python. Этот инструмент популярен в анализе данных.
# conda create -n myenv python=3.11
# conda activate myenv
# conda install numpy pandas
print('conda demo')

Итоги рекомендаций

Всегда работайте в venv. Используйте requirements.txt или pyproject.toml. Добавьте .venv/ в .gitignore. Придерживайтесь единых версий Python.
import sys
print('Python:', sys.version)
print('venv:', sys.prefix != sys.base_prefix)

Быстрая проверка

Какую основную проблему решают виртуальные окружения?

Повторение

Виртуальные окружения: изоляция для каждого проекта. У каждого venv есть собственные пакеты. Используйте requirements.txt для воспроизводимости. Добавьте .venv/ в .gitignore.

Продолжайте

Так держать! Переходите к следующему уроку.

Часто задаваемые вопросы

Урок «Зачем нужны виртуальные окружения» бесплатный?

Да — полный текст урока «Зачем нужны виртуальные окружения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

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

Разберитесь в конфликтах зависимостей и поймите, почему изоляция необходима. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

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

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Зачем нужны виртуальные окружения
  2. Создание и активация venv
  3. Управление зависимостями с помощью pip
  4. Современные инструменты: pipenv и uv
← Назад к Python Academy