Инициализировать макет проекта в Python? - PullRequest
11 голосов
/ 26 ноября 2009

Предположим, у программиста есть следующая проблема: он хочет начать новый проект на Python. Ему нужна базовая компоновка шаблонного материала, такого как тестовый каталог, исходный каталог, скрипт setuptools и т. Д. Как он создает все эти вещи и макет одной командой?

Например, paster (как предлагается в одном из ответов, предоставляет вам эту услугу)

paster create 
Selected and implied templates: PasteScript#basic_package 
A basic setuptools-enabled package 

, но paster является частью инструмента, основной областью которого не является развертывание пакетов. Что делать, если я хочу иметь шаблон для библиотеки и шаблон для приложения? Как я могу изменить шаблон, чтобы добавить в него свои личные вещи?

Ответы [ 4 ]

10 голосов
/ 26 ноября 2009

Вам нужно что-то, что поддерживает шаблоны, чтобы осуществить это. Наиболее часто используемым в сообществе python является pastescript.

easy_install pastescript # A one-time install
paster create

Если вы уже определились с названием пакета, то просто:

paster create mypackage

Если вы хотите настроить шаблон, то самый простой способ - это создать свой собственный пакет Python, который включает в себя нужный шаблон. После того, как вы установили его в свою среду, вы можете использовать этот пользовательский шаблон столько раз, сколько захотите. (Это тот тип вещей, который используется фреймворками, такими как пилоны, для создания шаблона для веб-приложения).

paster create -t libtemplate mypackage
paster create -t apptemplate mypackage

Для получения более подробной информации о том, как создавать шаблоны (которые состоят из смеси кода и исходных файлов), взгляните на: http://pythonpaste.org/script/developer.html#templates Вы заметите, что шаблоны поддерживают наследование, так что вы можете, например, Просто создайте шаблон или создайте свой собственный с нуля.

Для хорошего примера настроенного шаблона вы можете взглянуть на шаблон пилонов в источнике, здесь: Код шаблона пилонов

Кроме того, если вы еще не используете его, вам следует взглянуть на virtualenv Яна Бикинга. Он позволяет вам создавать временные «виртуальные» среды, которые позволяют устанавливать пакеты Python, не используя и / или не конфликтуя с какими-либо общесистемными пакетами, которые вы, возможно, установили.

Стандартная установка с virtualenv и pastescript может выглядеть примерно так:

mkdir mypackage && cd mypackage
virtualenv --distribute env
source env/bin/activate # 'Turns on / activates' the environment
easy_install pastescript
paster create mypackage
3 голосов
/ 18 мая 2011

Я использую modern-package-template для размещения своих проектов на Python.

modern-package-template - это шаблон PasteScript для создания начального макета для ваших проектов Python с использованием современных инструментов и практик, применяемых в сообществе Python. Таким образом, ваши проекты будут иметь следующие характеристики:

  • Используйте Distribute вместо setuptools, поскольку BDFL сам его поддерживает.
  • Поддержка Buildout, хотя вы не обязаны ее использовать.
  • README.txt и NEWS.txt автоматически включаются в метаданные вашего пакета как long_description, благодаря чему они появляются на странице PyPI для вашего проекта.
  • Автоматическое создание скрипта (или .exe) с использованием Distribute

Дополнительная информация и загрузка с pypi: http://pypi.python.org/pypi/modern-package-template

1 голос
/ 08 июля 2014

Я использую cookiecutter . Он написан на python, но может быть использован для любого проекта; не только питон. Он использует Jinja для шаблонов и включает в себя функции pre и post (написанные на python или bash), которые могут легко создавать / управлять своими virtualenvs или чем-то еще, о чем вы можете подумать. Вы можете хранить свои собственные шаблоны в локальном каталоге или извлекать других людей прямо из Интернета и запускать их, не сохраняя их локально. Это кажется гораздо более универсальным, более простым в использовании и более полезным IMHO, чем paster (раскрытие: я не пробовал paster). Он также находится в активной разработке.

1 голос
/ 26 ноября 2009

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

Лучший способ начать создавать свой собственный - начать с существующего примера и скопировать / вставить соответствующие биты из него. Предложение: ZopeSkel , так как оно довольно большое с множеством примеров. Просмотрите исходный код .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...