Когда Python-проект разрастается, в нём появляется десятки библиотек. Чтобы не ставить их вручную и не ломать окружение, используется файл requirements.txt — список всех зависимостей проекта.
### 📁 Создание файла
Чтобы сохранить список установленных библиотек, достаточно одной команды:
pip freeze > requirements.txt
➡️ Она выгрузит все текущие пакеты и их версии в
requirements.txt.### ⚙️ Установка зависимостей
Чтобы развернуть проект на другой машине или сервере, выполняем:
pip install -r requirements.txt
Все нужные пакеты установятся автоматически — с нужными версиями.
### 🧩 Формат файла
В
requirements.txt можно указывать версии библиотек по-разному:numpy==1.21.0 # строгая версия
pandas>=1.3.0 # версия не ниже указанной
requests # установится последняя
И не забывай: комментарии начинаются с
#.# Основные зависимости
numpy==1.21.0
pandas>=1.3.0
# Для тестов
pytest
### 🙌 Разделяй и властвуй
Если проект большой — можно разбить зависимости:
# requirements.txt
-r base.txt
-r dev.txt
Так ты отделишь продакшен-зависимости от тех, что нужны только для разработки.
### 🔒 Ограничения через constraints.txt
Чтобы зафиксировать версии пакетов без прямого указания в основном файле, можно использовать
constraints.txt:pip install -r requirements.txt -c constraints.txt
Пример:
requirements.txt
numpy==1.21.0
pandas
constraints.txt
pandas<=1.3.5
### 🧠 Несколько окружений
Для разных задач — свои зависимости:
requirements-dev.txt # разработка
requirements-test.txt # тесты
requirements-prod.txt # продакшен
Пример:
pip install -r requirements-dev.txt
### 🔄 Обновление пакетов
Чтобы подтянуть свежие версии библиотек:
pip install --upgrade -r requirements.txt
### 💬 Работа с виртуальным окружением
Всегда изолируй зависимости!
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txt
### ✅ Итог
requirements.txt — твой контроль над проектом.С ним ты избежишь конфликтов библиотек, упростишь деплой и сможешь спокойно разворачивать окружение где угодно.
#python #doc #cheatsheet
