Управление многими проектами Python / virtualenvs - PullRequest
6 голосов
/ 07 июня 2011

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

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Вы можете рассмотреть возможность использования zc.buildout.Это более раздражает в настройке, чем обычный pip / virtualenv, но дает вам больше возможностей для автоматизации.Если использование дискового пространства не является проблемой, я бы посоветовал вам продолжать использовать отдельные среды для каждого проекта, чтобы вы могли обновлять их по одному.

0 голосов
/ 07 июня 2011

В корне нашего проекта есть файл require.pip, содержащий пакеты для установки pip, поэтому автоматическое обновление относительно просто.Я не уверен, что символическая ссылка решит проблему - это усложнит процесс обновления подмножества ваших проектов.Если дисковое пространство не является проблемой, и вы можете написать несколько простых сценариев для вывода списка и обновления пакетов, я бы придерживался virtualenv «как есть».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...