Egg: Huevos de Python

Tal y como Ruby tiene sus gemas, PHP su PEAR y PECL, PERL su CPAN, … pues Python, tiene huevos… vamos, extensiones a las que llama egg.

Cuando un desarrollador realiza un desarrollo que quiere compartir con el mundo, normalmente, lo empaqueta de alguna forma y lo sube a Internet de alguna forma. A día de hoy, es muy común ver mucho código subido a sitios como PHPClasses, PEAR, RubyGems, Cheese Shop, SourceForge, GitHub, BitBucket, etc.

El empaquetado es algo en lo que, cada lenguaje pone un cierto estándar para facilitar la vida a los programadores y usuarios finales de ese código. Es muy común también, ver que muchas veces se empaqueta en ficheros de tipo phar, jar, gem, egg o los más conocidos tar.gz, tar.bz2 y zip. Cada lenguaje pone sus preferencias y convenciones.

La tienda de quesos

El índice general de paquetes Python (donde la gente suele subir sus códigos para compartirlos con la comunidad, suele ser lo que se conoce como Cheese Shop (la tienda de quesos). En este sitio, cada desarrollador puede darse de alta y subir sus códigos de modo que estén disponibles para el instalador de paquetes de Python.

El comando easy_install

La forma más fácil de instalar un huevo de Python, es emplear el comando easy_install, simplemente se ejecuta lo siguiente:

easy_install django

El sistema se conecta al índice general de paquetes y descarga el paquete indicado, así como lo instala una vez ha conseguido bajarlo. En el caso del ejemplo, bajaría el paquete de django, y lo instalaría sin problemas.

El gestor de paquetes de Python: pip

No obstante, para poder instalar de forma local (o vía URL) un paquete, o desinstalarlo, u obtener información del mismo, necesitamos otro comando más completo como este: pip; este comando se encarga de desempaquetar el huevo e instalarlo en el sistema.

Estos comandos se encuentra con el setuptools de Python, que generalmente se instala en todos los sistemas base Python que vienen instalados por defecto en la mayoría de distribuciones GNU/Linux. En MacOS X suele venir por defecto easy_install, y ejecutando lo siguiente, se puede instalar el comando pip:

easy_install pip

Los comandos, según la opción help de pip, son los siguientes:

  • freeze: muestra los paquetes instalados.
  • install: instala un paquete egg
  • search: busca un paquete egg en el sistema de índices (tiemda de queso).
  • uninstall: desinstala un paquete.
  • zip/unzip: comprime o descomprime, respectivamente, un paquete.

Conclusiones

La interfaz de la instalación de paquetes es bastante simple, pero tiene todas las características que sus homónimos en otros lenguajes de programación, por lo que es un buen punto de partida para codificar, sin repetirse (DRY ;-) ).