При разработке веб-приложения 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 не устанавливает все зависимости.