AÑO ----------- 0
NÚMERO -------- 6
FECHA: 2013-04-22
#6
“FARAÓN”
HD Hackers &
+
DEVELOPERS
Magazine digital de distribución
mensual sobre Software Libre, Hacking y Programación
para profesionales del sector de Tecnologías de la Información
Staff
Eugenia Bahit
Indira Burga
María José Montes Díaz
Milagros Infante Montero
Sergio Infante Montero
Arquitecta GLAMP & Agile Coach
Ingeniera de Sistemas
Técnica en Informática de Gestión
Est. Ingeniería de Sistemas
Ingeniero de Software
Hackers & Developers Magazine se distribuye bajo una licencia Creative Commons Atribución
NoComercial CompartirIgual 3.0 Unported . Eres libre de copiar, distribuir y compartir este material.
FREE AS IN FREEDOM!
HD
Hackers &
DEVELOPERS
+
#6
Hackers & Developers Magazine, es
una iniciativa sin fines de lucro
destinada al fomento y difusión de
las tecnologías libres presentes o
futuras, bajo una clara óptica
docente y altruista, que resulte de
interés técnico y/o científico a
profesionales
de
sector
Tecnologías de
Información.
Hackers & Developers Magazine se
sostiene económicamente con el
apoyo de
comunidad, no
recibiendo subvención alguna de
ninguna empresa, organización u
organismo
Gobierno.
Necesitamos de tu apoyo para
poder mantener este proyecto.
del
la
de
la
Ayúdanos a continuar
con este proyecto
Puedes
hacer un donativo ahora,
de 10, 15, 25, 50, 100 o 150 USD
para ayudar a que Hackers &
Developers Magazine pueda seguir
publicándose de forma gratuita,
todos los meses. Puedes donar con
PayPal o Tarjeta de Crédito a través
del siguiente enlace:
www.hdmagazine.org/donar
CON TU DONACIÓN DE USD 150
RECIBES DE REGALO,
UNA FUNDA DE
NEOPRENE PARA TU
ORDENADOR PORTÁTIL
VALUADA EN USD 25.-
(Origen: Estados Unidos)
“Hacker es alguien que disfruta
jugando con la inteligencia”
Richard Stallman
Free Software, Free Society
(Pág. 97), GNU Press 2010-2012
En esta edición:
Distribuyendo tus aplicaciones Python en PyPI.....................................4
Manual de Perl (Parte IV)....................................................................10
Equipos Ágiles: Parte II........................................................................15
Permiso denegado...............................................................................20
Pásate a GNU/Linux con ArchLinux: NGiNX+PHP+MariaDB..................25
Refactoring: otra práctica de la Programación eXtrema......................31
Configurando GitWeb en Ubuntu Server .............................................39
Draw.io: diagramas para tus proyectos................................................43
Automatizando tus aplicaciones con Cron...........................................47
Y LAS SECCIONES DE SIEMPRE:
ASCII Art...................................................................... Pág. 51
Este mes: Faraón por JGS
Zona U!........................................................................ Pág. 52
La comunidad de nuestros lectores y lectoras
Créditos
Hackers & Developers Magazine es posible gracias al compromiso de:
Responsable de Proyecto
Eugenia Bahit
Responsables de Comunicación
Indira Burga (Atención al Lector) - Milagros Infante (Difusión)
Staff
Eugenia Bahit
Arquitecta GLAMP & Agile Coach
www.eugeniabahit.com
Indira Burga
Ingeniera de Sistemas
about.me/indirabm
Milagros Infante Montero
Estudiante de Ingeniería en Sistemas
www.milale.net
María José Montes Díaz
Técnica en Informática de Gestión
archninfa.blogspot.com.es
Sergio Infante Montero
Ingeniero de Software
neosergio.net
Hackers & Developers Magazine agradece a los portales que nos ayudan con la difusión del proyecto:
Difusión
www.debianhackers.net
www.desarrolloweb.com
www.desdelinux.net
E-mail de Contacto:
[email protected]
Web Oficial: www.hdmagazine.org
Cuenta Twitter Oficial: @HackDevMagazine
Hackers & Developers Magazine – Año 0, Número 6 4
Distribuyendo tus
aplicaciones Python
en PyPI
N
O
H
T
Y
P
Si desarrollaste un módulo o aplicación Python,
distribuirlo en el Python Package Index (PyPI) y
dejarlo disponible a solo un “pip install” de cualquier
usuario, es una tarea sumamente sencilla que en unos
pocos minutos puedes aprender. Entérate cómo
distribuirlas leyendo este artículo.
Escrito por: Eugenia Bahit (Arquitecta GLAMP & Agile Coach)
Eugenia es Arquitecta de Software, docente instructora de tecnologías
GLAMP (GNU/Linux, Apache, MySQL, Python y PHP) y Agile coach (UTN)
especializada en Scrum y eXtreme Programming. Miembro de la Free
Software Foundation e integrante del equipo de Debian Hackers.
Webs:
Cursos de programación a Distancia: www.cursosdeprogramacionadistancia.com
Web personal: www.eugeniabahit.com
Redes sociales:
Twitter / Identi.ca: @eugeniabahit
E
l Python Package Index, más conocido por sus siglas PyPI, es el repositorio oficial
de aplicaciones desarrolladas en Python, que permite a programadores de todo el
mundo distribuir sus creaciones de forma eficiente y muy simple.
Las aplicaciones disponibles en http://pypi.python.org, pueden ser instaladas por los
usuarios, mediante un simple pip install nombre-del-paquete y para que puedas
distribuir tus aplicaciones a través de PyPI, solo es necesario prepararlas seguiendo
unos pocos pasos como veremos a continuación.
Preparar tu aplicación
Lo más importante es contar con una carpeta para alojar los módulos y paquetes de la
aplicación. Esta carpeta, contará con algunos archivos estándar para su distribución. Una
estructura de archivos y directorios apropiada, podría ser como la siguiente:
MiAplicacion/ Directorio de la aplicación
|_ paquete_1/ Paquete (parte de la app)
| |_ __init__.py
| |_ …
|_ paquete_2/
| |_ __init__.py
| |_ …
|_ docs/ Documentación
| |_ …
|_ tests/ Test Unitarios
| |_ …
|_ README.txt Descripción de la aplicación
|_ LICENSE.txt Copia de la licencia http://www.gnu.org/licenses/gpl.txt
|_ MANIFEST.in Lista de archivos que formarán parte del paquete
|_ setup.py Archivo de instalación
El archivo README.txt
En principio, aclarar que la extensión .txt se utiliza en los paquetes para otorgar
compatibilidad con sistemas operativos privativos no basados en *nix, pero en sistemas
GNU/Linux, dicha extensión, carece de significado. Sin embargo, es un estándar a la hora
de distribuir paquetes Python a través de PyPI.
En este archivo se puede colocar cualquier información relativa a la aplicación,
preguntas frecuentes, modos de uso e implementación, etc. La misma será aquella que
PyPI, muestre en la página del paquete:
Este archivo, así como la documentación que se incluya en docs/*.txt puede escribirse
aplicando el formato reST.
Una guía rápida de reST puede obtenerse en:
http://docutils.sourceforge.net/docs/user/rst/quickstart.html
El archivo LICENSE.txt
Básicamente se trata de una copia del texto de la licencia con la que se distribuye el
Software o paquete. Para distribuir el paquete como Software Libre, recomiendo utilizar
la licencia GPL en su versión 3.0 cuyo texto completo puede obtenerse en
http://www.gnu.org/licenses/gpl.txt
©2013 HDMagazine.org – Creative Commons Atribución NoComercial CompartirIgual 3.0 Unported
Pág. 5
Recordad que la licencia GPL v 3.0, es la recomendada por la Free Software
Foundation1 para la distribución de Software Libre, sea éste de uso comercial o no.
El archivo MANIFEST.in
Éste, es el que almacena el listado de archivos que componen el paquete. El listado de
archivos puede colocarse “a mano” (es decir, archivo por archivo) o se pueden utilizar
instrucciones como include expresión.
Para un paquete con la siguiente estructura:
PythonPrintr/
|_ printr/
| |_ __init__.py -- módulo que contiene la función printr()
|_ docs/
|_ tests/
|_ README.txt
|_ LICENSE.txt
|_ MANIFEST.in
|_ setup.py
El archivo MANIFEST.in podría verse como el siguiente:
include docs/*.txt
include *.txt
include printr/*.py
Algunas instrucciones frecuentes que podrían indicarse en un archivo MANIFEST.in, son:
include
Archivos a incluir en el paquete
exclude
Archivos a ignorar en el paquete
recursive-include
Incluye archivos de forma recursiva
recursive-exclude
Ignora archivos de forma recursiva
Otras instrucciones como global-include, global-exclude, graft y prune también se
encuentran disponibles.
1
http://www.fsf.org/
©2013 HDMagazine.org – Creative Commons Atribución NoComercial CompartirIgual 3.0 Unported
Pág. 6
El archivo setup.py
Este es el archivo clave. Contendrá toda la información sobre el paquete que deseas
distribuir.
Un ejemplo de formato de archivo setup.py se verá como el siguiente:
from distutils.core import setup
setup(
name="PythonPrintr", # Nombre de la app (CamelCase)
version="0.3", # Versión
author="Eugenia Bahit", # Nombre del Autor
author_email="
[email protected]", # E-mail del autor
packages=["printr"], # Paquetes a incluir
url="http://www.python-printr.org", # URL de la app
license="GPL v3.0", # Licencia
# Descripción corta
description="Module that allows to emulate the print_r() PHP function",
long_description=open('README.txt').read(), # Descripción larga
# Selección de categorías que pueden encontrarse en:
# https://pypi.python.org/pypi?:action=list_classifiers
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
Comentarios de: hd magazine 06 201304 (0)
No hay comentarios