1.4. Paquetes de Instalación

1.4.1. Introducción

Es fácil programar en python en nuestra propia máquina, pero para que nuestro programa pueda ser usado en cualquier máquina, debemos conseguir que se coloquen todos los archivos en su sitio y que se instalen todas las dependencias que sean necesarias.

El módulo distutils ha quedado relegado por setuptools. Hay otro ahora.

Nota

La carpeta site-packages contiene los paquetes que están instalados en su instalación de python.

Ver también

  • PYTHONPATH

1.4.2. Usando Setuptools

Setuptools es un paquete que reemplaza a distutils e introduce una forma de manejar los paquetes de python: los egg. Permite tanto bajar como registrar y subir un paquete a pypi. Con él se pueden generar archivos distribuibles que contengan todo lo necesario para usar el paquete, incluso puede generar ejecutables de Windows.

Nota

PyPI es el índice de paquetes de python.

Instalación:

Hay un archivo mágico que hace facil descargar e instalar el paquete setuptools, ejecutando el script:

ez_setup.py

Que puede encontrarse en http://peak.telecommunity.com/dist/ez_setup.py

Configuración

El script setup.py es el que ejecuta los comandos de setuptools y contiene todos los parámetros que se le pasan. Un script básico sería:

from setuptools import setup, find_packages
setup(
    name="miproyecto",
    version="0.1",
    description="Mi laboratorio de python",
    author="Yo",
    url="http://code.nabla.net/",
    packages=find_packages('src'),
    package_dir={'':'src'},
)

Nota

Se puede incluir ez_setup.py a nuestro paquete, y usarlo para instalarlo en la máquina:

from ez_setup import use_setuptools
use_setuptools(version='0.6c7')

Estructura de la carpeta

Un proyecto básico:

MYPROYECTO/
|-- README
|-- setup.py
|-- src
|   |-- mipaquete
|   |   |-- __init__.py
|   |   |-- mimodulo.py
|   |-- tests
|       |-- __init__.py
|       |-- runall.py
|       |-- test0.py

Comandos

La forma de usar setup.py es:

python setup.py <opciones globales> <comando1> <apciones1>

Para ver los comandos disponibles:

python setup.py --help-commands

Resumen los comandos más importantes:

Comando Descripción
build recopilar todo lo necesario para instalar
build_py recopilar sólo archivos python
build_sphinx recopilar sólo archivos sphinx
install instalar el paquete
develop modo de desarrollo
setopt asignar una opcion en setup.cfg
test ejecutar los tests
sdist Crear una distribución con código fuente
bdist Crear una distribución binaria
register Registrar el paquete en PyPI
upload Enviar el paquete a pyPI
easy_install instalar un paquete que este disponible en PyPI

Preparar

Para prepararlo todo, copiando los archivos a una carpeta build:

python setup.py build

Instalar

Para crear un egg y ponerlo en site-packages:

python setup.py install

Desarrollar

La copia que se ha colocado en site-packages no es en la que estamos trabajando. Podemos hacer que python trabaje directamente con los archivos que estamos editando. Para crear un enlace al codigo, ejecute:

setup.py develop

Y para deshacerlo:

setup.py develop -u

Bibliografía