miércoles, 8 de octubre de 2008

Paquetes egg - - como poner huevos con Python

En Linux/Debian es necesario instalar el paquete python-setuptools

#aptitude install python-setuptools


para hacer este ejercicio tome como insumo la documentación de la página http://peak.telecommunity.com/DevCenter/setuptools, luego crear directorios y ficheros del paquete:

$mkdir egg_prueba
$mkdir paquete_egg

$cd egg_prueba

$echo "" > paquete_egg/__init__.py
$vim paquete_egg/familia.py


   1 
2 class Familia:
3 def __init__(self):
4 self.nombre = ""
5
6 def set_nombre(self, nombre):
7 self.nombre = nombre
8
9 def get_nombre(self):
10 return self.nombre

luego crear en el directorio paquete_egg/ el fichero setup.py que contiene toda la información del paquete.

$vim setup.py


   1 
2 # importa setuptools
3 from setuptools import setup, find_packages
4
5 # Tupla con información del paquete
6 setup(
7 name = "familia" # Nombre Paquete,
8 version = "0.1" # Versión Paquete,
9 packages = find_packages() # Busca módulos dentro del directorio paquete_egg,
10 scripts = [] # Scripts que deben ir a /usr/bin,
11
12 install_requires = [] # Dependencias de otros paquetes,
13
14 package_data = {}# Diccionario con ficheros que deben incluirse en el paquete, por ejemplo {'': *.txt},
15
16 # Metadatos para el repositorio Pypi
17 author = "Alexander Olivares",
18 author_email = "olivaresa@cantv.net",
19 description = "Este es un paquete egg de prueba con una clase Familia",
20 license = "GPL",
21 keywords = "" # Palabras clave de busqueda,
22 url = ""
23 )


Luego de hacer esto debemos tener la siguiente estructura de archivos y directorios:


egg_prueba/
setup.py
paquete_egg/
__init__.py
familia.py

Estando en el directorio egg_prueba/ ejecutar:

$python setup.py bdist_egg


Eso creara el paquete que estará en egg_prueba/dist/familia-0.1-py2.4.egg

para instalar:

#easy_install egg_prueba/dist/familia-0.1-py2.4.egg


para utilizar:


   1 from familia import *
2
3 f = Familia()
4 f.set_nombre("Olivares")
5 print f.get_nombre()
6 "Olivares"

No hay comentarios:

Publicar un comentario