Ответ 1
Вы можете каскадировать свои файлы требований и использовать флаг "-r", чтобы сообщить pip о включении содержимого одного файла в другой. Вы можете разложить свои требования в иерархии иерархических папок следующим образом:
`-- django_project_root
|-- requirements
| |-- common.txt
| |-- dev.txt
| `-- prod.txt
`-- requirements.txt
Содержимое файлов будет выглядеть следующим образом:
common.txt:
# Contains requirements common to all environments
req1==1.0
req2==1.0
req3==1.0
...
dev.txt:
# Specifies only dev-specific requirements
# But imports the common ones too
-r common.txt
dev_req==1.0
...
prod.txt:
# Same for prod...
-r common.txt
prod_req==1.0
...
Вне Heroku вы можете настроить такие среды:
pip install -r requirements/dev.txt
или
pip install -r requirements/prod.txt
Поскольку Heroku выглядит специально для "requirements.txt" в корне проекта, он должен просто отображать prod, например:
requirements.txt:
# Mirrors prod
-r requirements/prod.txt