Структура проекта для проектов python

Существуют ли какие-либо инструменты, которые генерируют макет проекта для конкретных проектов на основе python, что очень похоже на то, что maven выполняет с помощью mvn archetype:generate для Java-проектов.

Ответ 1

Это хорошая новость: вам не нужен какой-либо инструмент. Вы можете организовать свой исходный код любым способом.

Сообщите нам, зачем нужны инструменты в java-мире:

В java вы хотите генерировать каталоги заранее, потому что система пространства имен требует, чтобы каждый класс должен жить в одном файле в структуре каталогов, которая отражает эту иерархию пакетов. Как следствие, у вас есть глубокая структура папок. Maven обеспечивает дополнительный набор правил для размещения файлов. Вы хотите иметь инструменты для автоматизации этого.

Во-вторых, разные артефакты требуют использования разных целей и даже дополнительных проектов maven (например, проект уха требует нескольких банок и артефактов войны). Существует так много файлов, что вы хотите иметь инструменты для автоматизации этого.

Сложность делает инструменты вроде mvn archetype:generate не только полезными. Это почти незаменимо.

В python land, у нас просто нет такой сложности на языке.

Если мой проект мал, я могу поместить все мои классы и функции в один файл (если это имеет смысл)

Если мой проект имеет больший размер (LOC или размер команды), имеет смысл группировать файлы .py в модули любым способом, который имеет смысл для вас и ваших сверстников.

В конце дней речь идет о балансе между простотой обслуживания и удобочитаемости.

Ответ 2

Следующие несколько команд bash работают для меня очень хорошо:

mkdir myproject
cd myproject
mkdir docs
mkdir tests
touch tests/__init__.py

С python, в отличие от java или c, вам обычно не нужно намного больше. См. ответы на соответствующий вопрос. Если вы считаете, что вам нужно больше, вам нужно быть более конкретными в отношении ваших требований.

Ответ 3

В Python (как и на любом языке) есть много частей для настройки, если вы хотите, чтобы все они хорошо играли вместе. Документация, тестирование, виртуальные envs, упаковка,...

Вы можете добавить эту конфигурацию по пути, когда они вам понадобятся, или когда ваш проект начнет расти. Наличие инструмента, который может настроить все это для вас и просто позволить вам заполнить пробелы, очень помогает.

Несколько проектов для просмотра: