8.5. Scaffolding en proyectos Python¶
La estructura del paquete Egg Python es poco compleja. Por lo cual para empezar con su primer proyecto y diversos módulos, puede usar el concepto Scaffolding para crear un esqueleto de código usando las plantillas adecuadas para paquetes Python.
Este concepto scaffolding, es muy útil para del arranque de su desarrollo, ofreciendo una serie de colecciones de plantillas esqueletos que permiten iniciar rápidamente proyectos, existente diversos esqueletos orientados a tipos de desarrollos específicos.
8.5.1. ¿Qué es PasteScript?¶
Es una herramienta de linea de comando basada en plugins que le permiten crear estructuras de paquetes de proyectos Python además sirve aplicaciones web, con configuraciones basadas en paste.deploy.
8.5.1.1. Instalación¶
Dentro de su entorno virtual activado debe instalar el paquete PasteScript, ejecutando el siguiente comando:
(venv)$ pip install PasteScript
Nota
No olvidar que estos paquetes han sido instalados con el entorno virtual que
previamente usted activo, eso quiere decir que los paquetes previamente
instalados con easy_install están instalados en el
directorio ~/virtualenv/venv/lib/python3.x/site-packages/
en ves del
directorio de su versión de Python de sistema /usr/lib/python3.x/site-packages/
Al finalizar la instalación podrá opcionalmente consultar cuales plantillas tiene disponible para usa, ejecutando el siguiente comando:
(venv)$ paster create --list-templates
Available templates:
basic_package: A basic setuptools-enabled package
paste_deploy: A web application deployed through paste.deploy
Usted puede usar el comando paster para crear paquetes Python.
(venv)$ paster create -t basic_package mipaquetepython
Selected and implied templates:
PasteScript#basic_package A basic setuptools-enabled package
Variables:
egg: mipaquetepython
package: mipaquetepython
project: mipaquetepython
Enter version (Version (like 0.1)) ['']: 0.1
Enter description (One-line description of the package) ['']: Mi Paquete Básico
Enter long_description (Multi-line description (in reST)) ['']: Mi Paquete Básico para demostrar el uso de PasteScript
Enter keywords (Space-separated keywords/tags) ['']: PasteScript Basic Package Demo
Enter author (Author name) ['']: Pedro Picapiedra
Enter author_email (Author email) ['']: pedro@acme.com
Enter url (URL of homepage) ['']: https://github.com/pyve/mipaquetepython
Enter license_name (License name) ['']: GPL
Enter zip_safe (True/False: if the package can be distributed as a .zip file) [False]:
Creating template basic_package
Creating directory ./mipaquetepython
Recursing into +package+
Creating ./mipaquetepython/mipaquetepython/
Copying __init__.py to
./mipaquetepython/mipaquetepython/__init__.py
Copying setup.cfg to ./mipaquetepython/setup.cfg
Copying setup.py_tmpl to ./mipaquetepython/setup.py
Running /home/macagua/virtualenv/venv/bin/python setup.py egg_info
Usted puede verificar el paquete previamente creado y observará como este paquete básico ha habilitado el Setuptools.
(venv)$ tree mipaquetepython/
mipaquetepython/
|-- mipaquetepython
| `-- __init__.py
|-- mipaquetepython.egg-info
| |-- PKG-INFO
| |-- SOURCES.txt
| |-- dependency_links.txt
| |-- entry_points.txt
| |-- not-zip-safe
| `-- top_level.txt
|-- setup.cfg
`-- setup.py
Para instalar este paquete ejecute el siguiente comando:
(venv)$ cd mipaquetepython/mipaquetepython/
(venv)$ vim app.py
Escriba un simple código que solicita un valor y luego lo muestra:
1 2 |
|
Guarde los cambios en el archivo app.py
, luego importe su aplicación
app.py
en el archivo __init__.py
con el siguiente código fuente:
1 |
|
Para comprobar su instalación ejecute el siguiente comando:
(venv)$ python
Y realice una importación del paquete mipaquetepython
ejecutando
el siguiente comando:
>>> import mipaquetepython
Introduzca alguna frase: Esta cadena
Usted introdujo: Esta cadena
>>> exit()
De esta forma tienes creado un paquete Egg Python.
8.5.2. Esqueletos en diversos proyectos Python¶
A continuación se muestran algunos esqueletos útiles:
-
Esqueletos de proyectos Odoo (Antiguo OpenERP).
Nota
Odoo, es un sistema ERP y CRM programado con Python, de propósito general.
-
Esqueletos de proyectos Django:
Nota
Django, es un Framework Web Python, de propósito general.
django-project-templates, plantillas Paster para crear proyectos Django.
fez.djangoskel, es una colección de plantillas Paster para crear aplicaciones Django como paquetes Egg.
django-harness, es una aplicación destinada a simplificar las tareas típicas relacionadas con la creación de un sitio web hechos con Django, el mantenimiento de varias instalaciones (local, producción, etc) y cuidando su instalación global y su estructura de «esqueleto» actualizado del sitio de manera fácil.
lfc-skel, Provee una plantilla para crear una aplicación django-lfc CMS.
-
Esqueletos de proyectos Pylons:
Nota
Pylons, es un Framework Web Python, de propósito general.
Pylons, al instalarse usando la utilidad easy_install instala dos plantillas de proyectos Pylons.
PylonsTemplates, le ofrece plantillas adicionales
paster
para aplicaciones Pylons, incluyendo implementación derepoze.what
.BlastOff, Una plantilla de aplicación Pylons que proporciona un esqueleto de entorno de trabajo configurado con
SQLAlchemy
,mako
,repoze.who
,ToscaWidgets
,TurboMail
,WebFlash
y (opcionalmente)SchemaBot
. La aplicación generada esta previamente configurada con autenticación, inicio de sesión y formularios de registro, y (opcionalmente) confirmación de correo electrónico.BlastOff
ayudar a acelerar el desarrollo de aplicaciones en Pylons por que genera un proyecto con una serie de dependencias configuraciones previamente.
-
Esqueletos de proyectos CherryPy:
Nota
CherryPy, es un MicroFramework Web Python, de propósito general.
CherryPaste, Usar CherryPy dentro Paste.
-
Esqueletos de proyectos Trac:
Nota
Trac, es un sistema de gestión de proyectos de desarrollos de software.
TracLegosScript, TracLegos es un software diseñado para ofrecer plantillas para proyectos Trac y asiste con la creación de proyecto trac.
trac_project, Plantilla de proyecto Trac de software de código abierto.
8.5.3. Recomendaciones¶
Si desea trabajar con algún proyecto de desarrollo basado en esqueletos o plantillas
paster
y Buildout simplemente seleccione cual esqueleto va a utilizar para su
desarrollo y proceso a instalarlo con easy_install o PIP (como se explico anteriormente)
y siga sus respectivas instrucciones para lograr con éxito la tarea deseada.
8.5.4. Referencias¶
Gestión de proyectos con Buildout, instalando Zope/Plone con este mecanismo desde la comunidad de Plone Venezuela.
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.
