Короткая история:
У меня очень большой проект Python
Он состоит из
ServiceA
, ServiceB
, ServiceC
ии т. д.
Для модульности у каждой службы есть своя виртуальная среда.
Каждой службе требуется немного foo()
от каждой другой службы.
ServiceA
делает import package_a
ServiceB
делает import package_b
ServiceC
делает import package_c
и т. Д.
Я не хочу создавать единую среду для всех служб, так как это будет выполнять обслуживаниеочень громоздко.
Какой хороший способ интегрировать такой проект для совместной работы, сохраняя модульность?
Длинная история:
У меня очень большой проект с более чем 25 большими модулями, которые взаимодействуют друг с другом.
Все они используют единую, чрезвычайно большую среду для всех зависимостей.
Настал момент, когда обновление пакетав одном модуле может (и часто делает) сломать другие модули.
Индексация Pycharm также занимает намного больше времени, чем должна.
Установка пакетов на новую машину занимает намного больше времени, чем нужно
Наихудшим, конечно, является страх перед обновлением из-за повышенного шанса поломки всего.
Большинству модулей требуется только подмножествоиз всех установленных пакетов.
Все это в Python 2.7, и мы хотим обновить до Python 3, что не может быть сделано все сразу, из-за размера проекта.
Мы бы получиливыполнять миграцию по одному модулю за один раз, сохраняя при этом функциональность системы в процессе работы, для деловых целей и для целей тестирования.
Я полагаю, что для этого потребуются некоторые модули, имеющие собственный интерпретатор, при этом все равно каким-то образом работаяостальные.
Как это можно сделать?