указать pip установить зависимости пакетов, перечисленных в файле требований

При разработке веб-приложения Django у меня есть список пакетов, которые мне нужно установить в virtualenv. Скажем:

Django==1.3.1
--extra-index-url=http://dist.pinaxproject.com/dev/
Pinax==0.9b1.dev10
git+git://github.com/pinax/pinax-theme-bootstrap.git@cff4f5bbe9f87f0c67ee9ada9aa8ae82978f9890
# and other packages

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

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

Теперь я хотел бы настроить новую виртуальную среду следующим образом:

  • поместить необходимые пакеты (без их зависимостей )в файл требований,
    напримерmanual-requirements.txt
  • установить их с их зависимостями
    pip install -r manual-requirement.txt(← проблема, это не устанавливает зависимости)
  • заморозить полную виртуальную среду
    pip freeze -r manual-requirements.txt > full-requirements.txt
    и развернуть.

Есть ли способ сделать это без повторной -ручной установки пакетов в новую виртуальную среду для получения их зависимостей? Это будет -подвержено ошибкам, и я хотел бы автоматизировать процесс очистки virtualenv от -больше -необходимых старых зависимостей.

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

48
задан Vadim Kotov 9 August 2017 в 12:36
поделиться