Разработка веб-приложения Django, у меня есть список пакетов, которые мне нужно установить в virtualenv. Скажи:
Django==1.3.1
--extra-index-url=http://dist.pinaxproject.com/dev/
Pinax==0.9b1.dev10
git+git://github.com/pinax/[email protected]90
# and other packages
Сначала я устанавливал их вручную, один за другим, по разработке. Это установило необходимые зависимости, и я, наконец, использовал pip freeze
перед развертыванием приложения.
Проблема в том, что при обновлении некоторых пакетов некоторые зависимости больше не используются и не требуются, но они сохраняются в списке pip freeze
.
Теперь я хотел бы создать новый virtualenv следующим образом:
- поместите необходимые пакеты (без их зависимостей) в файл требований,
напримерmanual-requirements.txt
- установить их со своими зависимостями
pip install -r manual-requirement.txt
(← проблема, это не устанавливает зависимости) - заморозить полный virtualenv
pip freeze -r manual-requirements.txt > full-requirements.txt
и развертывания.
Любой способ сделать это без ручной переустановки пакетов в новом virtualenv для получения их зависимостей? Это было бы подвержено ошибкам, и я хотел бы автоматизировать процесс очистки виртуальных серверов от ненужных старых зависимостей.
edit:, на самом деле, pip устанавливает зависимости, явно не перечисленные в файле требований, даже если документация сообщает нам, что такие файлы плоские. Я ошибался в отношении того, какие зависимости я ожидал установить. Я дам этот вопрос кому-нибудь, кто сомневается в том, что pip не устанавливает все зависимости.