Este articulo explica como instalar paquetes Python con Distribute y pip.
Distribute es un conjunto de mejoras en el módulo de la biblioteca estándar de Python: distutils (para Python 2.3.5 y hasta en la mayoría de las plataformas, plataformas de 64 bits requieren como mínimo de Python 2.4) que le permite crear con más facilidad la distribución de paquetes de Python, en especial los que tienen las dependencias de otros paquetes.
Distribute se creó porque el paquete Setuptools actualmente ya no se mantiene. Los paquetes de terceros, es probable que requieran setuptools, que es proporcionado por el paquete Distribute. Por lo tanto, en cualquier momento si los paquetes dependen del paquete Setuptools, Distribute intervendrá para decir que ya ofrece el módulo de setuptools.
El módulo distutils es parte de la librería estándar de Python y aun lo será hasta la versión Python 3.3.
Nota
El módulo distutils será descontinuado en Python 3.3.
El módulo distutils2 (note el número dos) tendrá compatibilidad hacia atrás hasta Python 2.4 en adelante; y será parte de la librería estándar en Python 3.3.
El módulo distutils provee las bases para empaquetar aplicaciones Python. Desafortunadamente, el módulo distutils está plagado de problemas, razón por la cual un pequeño grupo de programadores de Python están trabajando en distutils2. Sin embargo, hasta que distutils2 este completado, se recomienda que en el desarrollador pueda usar tanto el paquete distutils o el paquete Distribute para empaquetar software Python.
Al mismo tiempo, si un paquete requiere el paquete Setuptools, la recomendación es que instale el paquete Distribute, el cual provee una versión más actualizada del paquete Setuptools que el paquete original de Setuptools.
En el futuro distutils2 remplazará a setuptools y distutils, le cual también removerá la necesidad de Distribute. El como del estado anterior distutils será removido de la librería estándar. Para más información, por favor, consulte el Futuro del Empaquetado.
Nota
Ver el vídeo de la PyCon 2011 - Packaging, from Distutils to Distutils2, Packaging or installing a Python application can be extremely painful por Tarek Ziadé esta charla le sumergiera dentro de las nuevas características de Distutils2 y explica como usted puede usarlo en su proyecto hoy para hacer más fácil la vida para todo el mundo (usuarios, administradores de paquetes de Sistemas operativos, programadores, etc.).
Para descargar el vídeo haga clic aquí (Tamaño 294 mb) y para ver por vídeo Stream haga clic aquí.
pip es una herramienta para instalar y administrar Paquetes Python, como los que puede encontrar en el Índice de Paquetes de Python - PyPI.
Truco
Esta herramienta es el remplazo para la famosa herramienta easy_install.
En su mayoría, pip utiliza las mismas técnicas para encontrar los paquetes, por lo que los paquetes que se instalaban usando la herramienta easy_install también deben ser instalables con la herramienta pip.
Esto significa que usted puede utilizar con el siguiente comando:
$ pip install AlgunPaquete
En lugar del tradicional comando usado con la herramienta easy_install como se describe a continuación:
$ easy_install AlgunPaquete
pip ofrece mejoras a la herramienta easy_install. Algunas de las mejoras son:
Siempre existen más de dos formas de instalar paquetes Python con Distribute y pip ;)
Es necesario que instale ciertas dependencias en su sistema operativo como las que se muestran a continuación:
# aptitude install build-essential python-dev python-setuptools
Para instalar Distribute ejecute el siguiente comando:
# easy_install -U distribute
También para instalar pip ejecute el siguiente comando:
# easy_install -U pip
La instalación en sistemas Debian es recomendable que instale ciertas dependencias en su sistema operativo como las que se muestran a continuación:
# aptitude install build-essential python-dev python-pip
La herramienta pip ofrece varias formas de uso, para instalar los paquetes de diversas fuentes:
Truco
Para poder utilizar el pip, primero debe instalar setuptools o distribute. Si utiliza virtualenv, una copia del pip será automáticamente instalados en cada entorno virtual que usted crea.
pip se puede complementar con virtualenv, y se recomienda que lo utilice para aislar a la instalación de los paquetes Egg.
Ejemplo 1. Instalar un paquete su nombre en su versión más reciente, buscando en PyPI:
$ pip install SQLObject
Ejemplo 2. Instalar o actualizar un paquete por nombre y versión utilizando una dirección URL donde encontradas en una “página de descargas”:
$ pip install -f http://dist.plone.org/packages/ 'Pillow==1.7.3'
Ejemplo 3. Instalar o actualizar un paquete desde su propio replica del repositorio PyPI o su repositorio de paquetes Egg privados:
$ pip install -i http://pypi.ejemplo.com/simple SQLObject
Ejemplo 4. Descargar e instalar una distribución de código fuente:
$ pip install http://ejemplo.com/ruta/a/MiPaquete-1.2.3.tgz
Ejemplo 5. Instalar un paquete con una versión especifica:
$ pip install 'ZopeSkel==2.21.2'
Ejemplo 6. Instalar todas las dependencias de su proyecto Python usando un archivo de dependencias requeridas para instalar:
$ pip install -r ./requirements.txt
Un ejemplo del archivo requirements.txt puede ser el siguiente:
python-ldap
django
buildbot
buildbot-slave
PyYAML
south
Ejemplo 7. Actualizar un paquete ya instalado con la versión más reciente de PyPI:
$ pip install --upgrade PyProtocols
Ejemplo 8. Para usar realizar búsquedas de paquetes disponibles para instalar desde los repositorios por definidos:
$ pip search plonetheme-*
Ejemplo 9. Para remover un paquete Egg
$ pip uninstall SQLObject
Para más información consulte la ayuda disponible por que paquete pip ejecutando el siguiente comando:
$ pip help
Puede usar Distribute en zc.buildout, habilitando el uso de este por medio de un parámetro adicional en su archivo bootstrap.py de la siguiente manera:
$ python bootstrap.py --distribute
Existen varias estrategias para integrar pip en zc.buildout, a continuación se describen algunas formas:
gp.recipe.pip, ese paquete es un recipe de zc.buildout el cual permite instalar Paquete Python usando pip. A continuación se explica un ejemplo de configuración zc.buildout con este récipe se puede usar:
A continuación un ejemplo de configuración zc.buildout:
[buildout]
# the cache dir is used by buildout & pip
download-cache = download
parts = eggs
[eggs]
recipe = gp.recipe.pip
# eggs installed by pip (also add the Deliverance bundle)
install =
Cython
--install-option=--static-deps lxml==2.2alpha1
http://deliverance.openplans.org/dist/Deliverance-snapshot-
latest.pybundle
# eggs installed by zc.recipe.egg
eggs =
Paste
pyquery
Otra forma de usar pip es a través de una extensión zc.buildout llamada gp.vcsdevelop, para hacer checkout de paquetes Egg desde varios sistemas de control de versiones. A continuación se muestra un ejemplo de configuración zc.buildout con esta extensión:
[buildout]
...
extensions = gp.vcsdevelop
develop-dir = ./requirements
requirements = requirements.txt
parts = eggs
...
[eggs]
recipe = zc.recipe.egg
eggs = ${buildout:requirements-eggs}
interpreter = python
...
Un ejemplo del archivo requirements.txt puede ser el siguiente:
ConfigObject>=1.0
-e git+git://github.com/bearstech/PloneTerminal.git#egg=PloneTerminal
El código fuente de este archivo esta hospedado en GitHub. Todos pueden actualizar y corregir errores en este documento con unos clic - sin necesidad de descargar.
Para mas información básica acerca de como actualizar este manual y referencia a sintaxis Sphinx, por favor consulte la guía Escribiendo y actualizando el manual.