Как запустить код, который имеет модули, каждый из которых по-разному virtualenv? - PullRequest
0 голосов
/ 19 мая 2019

Короткая история:

У меня очень большой проект Python

Он состоит из
ServiceA, ServiceB, ServiceC ии т. д.

Для модульности у каждой службы есть своя виртуальная среда.
Каждой службе требуется немного foo() от каждой другой службы.

ServiceA делает import package_a
ServiceB делает import package_b
ServiceC делает import package_c
и т. Д.

Я не хочу создавать единую среду для всех служб, так как это будет выполнять обслуживаниеочень громоздко.

Какой хороший способ интегрировать такой проект для совместной работы, сохраняя модульность?


Длинная история:

У меня очень большой проект с более чем 25 большими модулями, которые взаимодействуют друг с другом.
Все они используют единую, чрезвычайно большую среду для всех зависимостей.

Настал момент, когда обновление пакетав одном модуле может (и часто делает) сломать другие модули.
Индексация Pycharm также занимает намного больше времени, чем должна.
Установка пакетов на новую машину занимает намного больше времени, чем нужно
Наихудшим, конечно, является страх перед обновлением из-за повышенного шанса поломки всего.

Большинству модулей требуется только подмножествоиз всех установленных пакетов.

Все это в Python 2.7, и мы хотим обновить до Python 3, что не может быть сделано все сразу, из-за размера проекта.
Мы бы получиливыполнять миграцию по одному модулю за один раз, сохраняя при этом функциональность системы в процессе работы, для деловых целей и для целей тестирования.

Я полагаю, что для этого потребуются некоторые модули, имеющие собственный интерпретатор, при этом все равно каким-то образом работаяостальные.


Как это можно сделать?

1 Ответ

0 голосов
/ 19 мая 2019

Я думаю, что в Pycharm нет термина «Модуль», как показано на следующем снимке экрана.Что мы можем сделать, это добавить несколько папок в рамках проекта.Однако интерпретатор Python может быть связан только с проектом, кроме каждой папки.

Pycharm ScreenShot

...