Виртуальные среды Python: venv и изоляция зависимостей

Освойте виртуальные среды Python. Узнайте, как безопасно создавать, активировать и управлять зависимостями с помощью venv и pip.

Попробуйте в редакторе

Обзор

Работая над несколькими проектами Python, вы неизбежно столкнетесь с конфликтами зависимостей. Для проекта A может потребоватьсяDjangoверсии 3.2, а для проекта B требуетсяDjangoверсии 5.0. Если вы установите эти пакеты глобально, они перезапишут друг друга, что приведет к поломке одного из ваших приложений. Виртуальные среды решают эту важную проблему, создавая изолированные каталоги для конкретных проектов, содержащие собственные двоичные файлы Python и установки библиотек.

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

Управление виртуальными средами включает в себя три основные команды. Сначала `python -m venv venv` создает каталог виртуальной среды с именем `venv`. Затем вы активируете среду («source venv/bin/activate» в macOS/Linux или «venv\Scripts\activate» в Windows). Наконец, вы замораживаете свои зависимости, используя `pip Freeze > Requirements.txt`, создавая список, который другие разработчики могут использовать для воссоздания точной среды. Понимание виртуальных сред — неоспоримая передовая практика для современной разработки Python.

Код и вывод выполнения

Макет, демонстрирующий команды для создания, активации и вывода требований к пакету.

# This script prints the commands used to configure a virtual environment
commands = [
    "python -m venv my_env       # Create environment",
    "source my_env/bin/activate  # Activate environment (Mac/Linux)",
    "pip install requests        # Install isolated package",
    "pip freeze > requirements.txt # Export dependency catalog"
]

print("--- Virtual Environment Lifecycle ---")
for index, cmd in enumerate(commands, 1):
    print(f"Step {index}: {cmd}")
Терминальный выход
--- Virtual Environment Lifecycle ---
Step 1: python -m venv my_env       # Create environment
Step 2: source my_env/bin/activate  # Activate environment (Mac/Linux)
Step 3: pip install requests        # Install isolated package
Step 4: pip freeze > requirements.txt # Export dependency catalog

Пошаговая реализация

  • Изолирование проектов рабочей области для предотвращения перекрытия зависимостей.
  • Настройка предсказуемых сред для контейнеров Docker
  • Доставка воспроизводимых кодовых баз со списками require.txt.

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

Какие папки следует gitignore в проекте Python?

Вам всегда следует добавлять каталог виртуальной среды (обычно «venv/» или «.venv/») в ваш файл .gitignore. Никогда не проверяйте зависимости внешних библиотек в git.

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

Просто введите команду «деактивировать» в окне терминала, и ваша оболочка вернется в глобальную среду Python.

Связанные темы

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.