Управление многими проектами Python / virtualenvs

На своем рабочем месте мне приходится управлять многими (в настоящее время десятками, а в конечном итоге, возможно, сотнями) веб-приложениями Python, потенциально запускающими различные фреймворки, библиотеки и т.д. (все в разных версиях). Virtualenv до сих пор помогал в этом, но я все же хотел бы иметь возможность управлять вещами лучше, особенно когда дело доходит до управления обновлениями пакетов.

Я придумал несколько сценариев

Вариант 1 : Установите все необходимые модули для каждого проекта в каждом виртуальном сервере с помощью pip, обновляя каждый отдельно по мере необходимости. Это потребует значительных временных затрат на каждое обновление и потребует дополнительной документации для отслеживания вещей. Возможно, этому способствуют некоторые сценарии управления.

Вариант 2: Установите все библиотеки, используемые любым приложением, в центральный репозиторий, используйте символические ссылки, чтобы легко изменить версии один раз для всех проектов. Простые обновления и централизованное управление, но в первую очередь упускаются некоторые из самых приятных преимуществ использования virtualenv.

Вариант 3: Каким-то образом гибридизируйте два вышеупомянутых, централизуя наиболее распространенные библиотеки и / или те, которые могут нуждаться в обновлении, а остальные устанавливают локально на каждый virtualenv.

Есть ли у кого-нибудь еще подобная ситуация? Как лучше всего с этим справиться?

6
задан Michael C. O'Connor 7 June 2011 в 15:26
поделиться