Частенько бывает что часть пакетов нужна при разработке и не нужна на продакшене. И наоборот. Поэтому желательно бы еще разделять requirements для разработки и для продакшена.
Файлы с requirements могут включаться один в другой. Таким образом обычно зависимости можно разделить на 3 отдельных файла.
Например:
reqs/
- common.txt
- prod.txt
- dev.txt
common.txt будет содержать все обязательные общие зависимости. Пример с потолка:
Django==1.8.5
mysql-python==1.2.5
dev.txt будет содержать пакеты специфичные только для разработки но включая common. Пример опять же с потолка:
-r common.txt
ipyhton
ipdb
django-debug-toolbar==1.4
prod.txt тоже будет включать common но так же содержать вещи которые на продакшене обязательны а в Вашем локальном окружении не нужны вовсе:
-r common.txt
gunicorn==19.4.1
whateverelse=1.0.0
соответственно когда мы собираемся разрабатывать мы устанавливаем зависимости так
pip install -r reqs/dev.txt
в продакшене
pip install -r reqs/prod.txt