Модуль 1 · Урок 2 із 58

venv, pip і відтворюване середовище

Проєкт має запускатися тим interpreter і з тими залежностями, які ви перевірили. Virtual environment ізолює packages одного проєкту від іншого; активація лише змінює пошук команд і не є магією.

venvsys.executablepython -m pip.gitignore

Навіщо окреме середовище

IsolationЗалежність проєкту не оновлює випадково інший застосунок або системний Python.
Identitysys.executable показує, який interpreter реально виконує код.
RebuildСередовище не є артефактом для Git; його відтворюють із опису залежностей.

Створення й перевірка

Windows PowerShell: py -m venv .venv .\.venv\Scripts\Activate.ps1 python -c "import sys; print(sys.executable)" python -m pip --versionmacOS / Linux: python3 -m venv .venv source .venv/bin/activate python -c 'import sys; print(sys.executable)' python -m pip --version

Шлях у двох останніх командах має вказувати всередину .venv. Якщо shell блокує activation script, не вимикайте захист системи глобально: можна викликати interpreter середовища абсолютним шляхом.

Чому python -m pip надійніше

Команда прив’язує pip до того самого interpreter, який ви щойно перевірили. Окремий executable pip у PATH може належати іншій інсталяції.

До installpython -m pip --version і python -c "import sys; ...".
Після installПеревірити конкретну distribution та імпорт у цьому environment.
Для reviewЗафіксувати requirement declaration, але не комітити .venv.

Мінімальна структура проєкту

python-safe-start/ ├── .gitignore ├── README.md ├── requirements.txt ├── src/ │ └── env_report.py └── tests/ └── test_env_report.py# .gitignore .venv/ __pycache__/ *.py[cod] .env
Не плутайте: import package у коді та distribution package у package index можуть мати різні назви. Перевіряйте офіційну документацію пакета, а не вгадуйте команду install.

Практика зі starter pack

  1. Завантажте safe start pack і розпакуйте в нову теку.
  2. Створіть .venv, перевірте executable та pip.
  3. Запустіть python src/env_report.py.
  4. Запустіть python -m unittest discover -s tests -v.
  5. Поясніть, чому каталог .venv не має потрапити в ZIP артефакту або Git.

Офіційні джерела

Практична перевірка · урок 2 з 47

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Головна мета venv для проєкту?
2. Що робить активація virtual environment?
3. Чому команда python -m pip корисна?