Я почувствовал, что лучшим решением было бы использовать принцип подмодулей (с git).
/>
К сожалению, я зашёл в тупик, чтобы это сработало.
Мой первый репозиторий выглядит так:
Код: Выделить всё
REPO_A
- src/
- package1/
__init__.py
file1.py
- package2/
__init__.py
file2.py
file3.py
- main_file.py
"main_file > file3 > file1 и file 2"В этом репозитории все работает так, как ожидалось. При импорте используется абсолютный путь (например, «из функции импорта src.package1.file1»).
Однако теперь я хотел бы интегрировать этот репозиторий в родительский репозиторий с помощью git-submodule.
Родительский репозиторий выглядит так:
Код: Выделить всё
REPO_B
- src/
- otherpackage1/
__init__.py
otherfile1.py
- otherpackage2/
__init__.py
otherfile2.py
otherfile3.py
- REPO_A
- src/ ...
- main_file.py
- other_main_file.py
Возвращается ошибка:
"ModuleNotFoundError: No модуль с именем 'src.package2'".
Кажется очевидным, что этот путь существует только в подмодуле, но я не знаю, как решить эту проблему и все еще иметь репозиторий A, работающий один.
Мои сомнения:
- расположение субмодуля. Нужно ли его ставить в конкретное место?
- Установка. Следует ли устанавливать это репо как пакет или как альтернативу? (Если да, то это будет поэзия).
- Использование относительных путей. Лично мне это решение не нравится.
- Добавление пути в Python. Это не совсем чистое решение, и это будет моим последним средством.

Подробнее здесь: https://stackoverflow.com/questions/791 ... nt-project