Структура проекта для проектов Python - PullRequest
12 голосов
/ 03 апреля 2012

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

Ответы [ 3 ]

7 голосов
/ 03 апреля 2012

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

Напомним, зачем нам нужны инструменты в мире Java:

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

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

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

В Python Land у нас просто нет этих сложностей в языке.

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

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

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

5 голосов
/ 03 апреля 2012

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

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

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

4 голосов
/ 02 ноября 2016

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

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

Несколько проектов, на которые стоит обратить внимание:

...