Ведение различных файлов требований для virtualenv и pip

#python #bash #pip #virtualenv

#python #bash #pip #virtualenv

Вопрос:

Я знаю, что я могу использовать pip freeze , чтобы помочь в создании списка моих требований для моей виртуальной среды, но у меня возникли некоторые трудности с управлением всеми моими различными пакетами.

Я хочу сохранить некоторые пакеты отдельно для разработки и производства, и иметь файлы требований к производству и разработке громоздко, поскольку я использую так много пакетов (многие из которых являются общими друг для друга). Как я могу более эффективно разделять свои производственные пакеты и пакеты разработки?

Ответ №1:

Совсем не сложно.

Допустим, у вас есть один файл требований для производства: production.txt и один для разработки: development.txt . Создайте третий файл, shared.txt , который имеет все общие зависимости. Затем в каждом соответствующем файле требований перечислите зависимости, относящиеся исключительно к вашей желаемой среде. В начале development.txt и production.txt , ссылка на ваше shared.txt использование -r shared.txt . Теперь каждый файл будет загружать общие зависимости перед загрузкой эксклюзивных зависимостей.

Пример:

shared.txt

 SharedExamplePackage1
SharedExamplePackage2
SharedExamplePackage3
SharedExamplePackage4
SharedExamplePackage5
  

development.txt

 -r shared.txt
DevExamplePackage1
DevExamplePackage2
  

production.txt

 -r shared.txt
ProductionExamplePackage1
ProductionExamplePackage2
ProductionExamplePackage3
  

Ответ №2:

Вы можете включить один файл требований в другой, используя:

 -r more_requirements.txt
  

Например, dev-requirements.txt файл может содержать производственные требования плюс дополнительные пакеты разработки:

 -r requirements.txt
mock
tox
  

(и так далее)

Комментарии:

1. могу ли я привести его в состояние? Я не хочу устанавливать некоторые приложения на heroku (производство), но, похоже, первое решение не работает для heroku — не удается обнаружить buildpack