Contents
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
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.
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
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')
Un proyecto básico:
MYPROYECTO/
|-- README
|-- setup.py
|-- src
| |-- mipaquete
| | |-- __init__.py
| | |-- mimodulo.py
| |-- tests
| |-- __init__.py
| |-- runall.py
| |-- test0.py
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 |
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