2009-11-26 19 views
11

Supongamos que un programador tiene el siguiente problema: quiere iniciar un nuevo proyecto de python. Él necesita un diseño básico de material repetitivo, como el directorio de prueba, el directorio de origen, el script de setuptools, etc. ¿Cómo crea todo esto y el diseño con un solo comando?¿Inicializar el diseño del proyecto en python?

Por ejemplo, parche (como se sugiere en una de las respuestas, se ofrece este servicio)

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

pero parche es parte de una herramienta cuyo ámbito principal no sea el despliegue de paquetes. ¿Qué sucede si quiero tener una plantilla para una biblioteca y una plantilla para una aplicación? ¿Cómo puedo modificar la plantilla para agregarle mis cosas personales?

+0

... e inicie el repositorio Bazaar ;-) – jldupont

+0

Estoy cansado de volver a crear el diseño del paquete y la configuración cada vez y rehacer una gran cantidad de errores triviales. Si hay algo que lo hace por mí y simplemente llene los espacios, es mucho mejor. –

+0

también porque si copio mi configuración anterior, no estoy seguro de estar al día con "la forma correcta". –

Respuesta

10

Necesita algo que admita la creación de plantillas para llevarlo a cabo. El más utilizado en la comunidad python es pastescript.

easy_install pastescript # A one-time install 
paster create 

Si ya ha decidido sobre el nombre del paquete, que es simplemente:

paster create mypackage 

Si desea personalizar la plantilla, de la manera más fácil es crear su propio paquete python eso incluye la plantilla personalizada que deseas. Una vez que lo haya instalado en su entorno, puede usar esta plantilla personalizada tanto como desee. (Este es el tipo de cosa utilizada por los marcos como pilones para crear una plantilla para una aplicación web).

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

Para más detalles sobre cómo crear plantillas (que consisten en una mezcla de archivos de código fuente) y echar un vistazo a: http://pythonpaste.org/script/developer.html#templates Se dará cuenta de que las plantillas de la herencia de soporte, por lo que se puede, por ejemplo, basarse en la plantilla incluida o crear sus propias plantillas desde cero.

Para un buen ejemplo de una plantilla personalizada, puede echar un vistazo a las torres de alta tensión en la fuente de la plantilla, aquí: Pylons Template Code

Además, si no está ya usarlo, usted debe echar un vistazo a las El virtualenv de Ian Bicking. Le permite crear entornos temporales "virtuales" que le permiten instalar paquetes de Python sin usar y/o en conflicto con los paquetes de todo el sistema que pueda haber instalado.

una configuración estándar con virtualenv y pastescript podría ser algo como esto:

mkdir mypackage && cd mypackage 
virtualenv --distribute env 
source env/bin/activate # 'Turns on/activates' the environment 
easy_install pastescript 
paster create mypackage 
+0

Vaya, olvidé que los comentarios no aceptan el formateo. Agregando a la pregunta. –

+0

+ !: GRACIAS. De alguna manera, me perdí la nota sobre el paster aparentemente. –

1

Usted puede hacer sus propias plantillas. Realmente útil, por ejemplo, para los estándares internos de la estructura del proyecto.

La mejor manera de empezar a hacer uno propio es comenzar con un ejemplo existente y copiar/pegar los bits relevantes del mismo. Sugerencia: ZopeSkel ya que es bastante grande con muchos ejemplos. Navegue the source code.

3

Estoy usando modern-package-template para diseñar mis proyectos de Python.

modern-package-template es una plantilla de PasteScript para crear un diseño inicial para sus proyectos de Python utilizando las herramientas y prácticas modernas seguidas en la comunidad de Python.Por lo tanto, sus proyectos tendrán las siguientes características:

  • Utilice Distribuir en lugar de herramientas de configuración, ya que el BDFL mismo lo admite.
  • Compatibilidad con la compilación, aunque no está obligado a hacer uso de ella.
  • README.txt y NEWS.txt se incluyen automáticamente en los metadatos de su paquete como long_description, lo que los hace aparecer en la página de PyPI para su proyecto.
  • la escritura automática (o .exe) usando la creación Distribuir

Más información y descarga de PyPI: http://pypi.python.org/pypi/modern-package-template

1

He estado usando cookiecutter. Está escrito en python pero se puede usar para cualquier tipo de proyecto; no solo Python. Utiliza Jinja para plantillas y presenta anzuelos pre y post (escritos en python o bash) que pueden crear/administrar fácilmente virtualenvs o cualquier otra cosa que se te ocurra. Puede almacenar sus propias plantillas en un directorio local o atraer a otras personas directamente de Internet y ejecutarlas sin almacenarlas localmente primero. Parece mucho más versátil, más simple de usar, y más útil en mi humilde opinión a continuación, paster (la revelación: no he probado Paster). También está en desarrollo activo también.

Cuestiones relacionadas