Мы определяем структуру для нового проекта, имеющего несколько модулей, которые могут включать подпроекты на основе Python и JVM. До того, как Python был в стеке, мы использовали Gradle, который позаботился почти обо всех наших конфигурациях. Теперь мы хотим иметь Python в стеке в нескольких разных модулях.
Каковы рекомендации по управлению / структурированию таких проектов? Как эти рекомендации могут измениться, зная, что все разработчики используют IntelliJ IDEA
?
Что мы имеем на данный момент:
- Для каждого модуля
Java
/ scala
: модуль на основе Gradle
, в котором все наши зависимости автоматически учитываются при импорте проекта и / или обновлении части Gradle.
- Для каждого модуля
Python
: файл requirements.txt
, содержащий все необходимые пакеты для этого модуля. Разработчику предлагается вручную создать виртуальную среду Python и установить ее как Module SDK
в IntelliJ IDEA (это наша главная проблема, мы хотим как-то это автоматизировать).
Что нам нужно знать точно:
- Что добавить в наш репозиторий git, чтобы мы были как можно ближе к структуре с нулевой конфигурацией для любого, кто клонирует / извлекает из репозитория?
- Как использовать виртуальную среду Python для каждого модуля Python, как управлять пакетами и самими средами?
- Стоит ли начинать напрямую с Pipenv , хотя он по-прежнему не поддерживается в IntelliJ IDEA, хотя эта проблема выглядит многообещающе?
- Как управлять межмодульными зависимостями Python? Должны ли мы использовать какие-либо утилиты дистрибутивов Python?