Как лучше управлять разными версиями пакетов? Я знаю о virtualenv, но я не уверен, что он подходит в моем случае.
Моя проблема:
Учтите, что у меня есть 2 проекта (P1, P2), которые оба используют 1 небольшой проект (P3 ). Я использую git подмодули и добавляю P3 к P1 и P2.
Тогда у меня есть P4, который использует все проекты, описанные выше, и P4 требуется последняя версия P3.
Как иметь дело с Это? Я хочу, чтобы P1, P2, P4 использовали свою собственную версию P3. Но когда я собираю P4, у меня есть только одна версия P3.
Структура проектов:
Все проекты имеют такую структуру (некоторые файлы опущены):
P4 пример:
├── project_name (sources are here)
├── Makefile
├── submodules
│ └── P1
│ ├── submodules
│ │ └── P3
│ └── P2
│ ├── submodules
│ │ └── P3
│ └── P3
├── tests
└── setup.py
Как импортируются подпроекты:
Здесь нет ничего удивительного, все проекты импортируют P3 таким образом, поскольку была установлена только одна версия.
Итак P1 использует: from P3 import something
И P4 также использует:
from P3 import something
from P1 import something_else