En nuestra serie de herramientas para programadores es el turno esta vez del lenguaje de Guido Van Rossum. Es bastante difícil elegir las mejores en ciertos apartados, ya que muchas veces depende de nuestra forma de trabajar y las costumbres o exigencias en los proyectos, así que si encontráis que falta alguna herramienta importante podéis comentarlo para que nos sirva a todos. Las utilidades seleccionadas abarcan desde el desarrollo estándar hasta el orientado a frameworks y entornos web.
El intérprete: Python
Es la más esencial, y aunque sea de “perogrullo” hay que nombrarla. Aunque casi todo el mundo suele tirar con la versión CPython, hay otras versiones igualmente interesantes como IronPython (que funciona bajo .NET/Mono y Silverlight/Moonlight), Jython (lo hace en la máquina virtual de Java) o Pypy (Python dentro de Python, explicado perfectamente por su logo de la serpiente que se muerde la cola).
Los podremos encontrar aquí: Página de descargas de Python.org
Easy Install, nuestro gestor de paquetes
Easy Install es a Python lo que “emerge” a Gentoo. Easy Install es un script que se encarga de indexar, instalar, compilar, desinstalar y actualizar de forma sencilla, segura y homogenea todos los paquetes y librerías que queramos integrar en nuestra instalación de Python. Tiene un funcionamiento muy completo e incluso te permite elegir la versión exacta que quieres instalar, por si tienes problemas de dependencias. Easy Install forma parte del paquete “setuptools“ y las instrucciones para instalarlo las podemos encontrar aquí: Cómo instalar las setuptools.
Virtualenv, separando entornos
En Python es común que, por las propias características del mismo intérprete o alguno de sus productos (ej. Django), necesitemos distintas versiones de Python instaladas, con distintas librerías y diferentes configuraciones. Para este cometido disponemos de Virtualenv, que es capaz de crear entornos virtuales para ejecutar nuestros programas. Estos entornos están completamente aislados y son independientes, de forma que ninguna librería, incluso globales del sistema, nos va a estropear nada si no queremos. Como ya supongo que todos tenemos “Easy Install”, la instalación es tan simple como ejecutar en la línea de comandos esto:
$ easy_install virtualenv==dev.
Para picar (código)
En este apartado me ha resultado imposible decantarme por un solo IDE, por lo que os pongo los 3 que más me gustan:
-
Eric IDE (web): Este IDE está programado en Python e incluye debugger, integración con control de versiones, plugins,etc. Si te gustan los editores modernos, con autocompletado, estilo Eclipse, este es tu opción. Por cierto, Eclipse también incluye un plugin para Python.
-
gEdit (web), el editor polivalente: Aunque su versión “pata negra” es la de Linux está también disponible para varias plataformas, en las que se echa en falta su integración con Gnome. gEdit dispone de todas las características necesarias en un editor actual, incluso le hace sombra al famoso Textmate de MacOS, que sería su competidor más directo.
-
Vi+pyflakes (web): El Panzer de la división, todoterreno y con una gran curva de aprendizaje si no conoces el editor, pero una herramienta potentísima una vez se aprende.
También disponemos de IDLE, el que trae el propio Python (que no me termina de convencer) y del que uso normalmente estando en consola: Joe’s own editor.
Servidor para desarrollo web
Si vamos a desarrollar usando Django, por ejemplo, durante el propio desarrollo no vamos a necesitar nada más, pero en cuanto pasemos a producción no nos servirá el mini server que trae incorporado. En otros casos ni siquiera traen esta opción por lo que debemos montarnos el servidor, o servidores, necesarios. Lo normal es utilizar apache2 más el módulo WSGI para servir el contenido dinámico, y un segundo servidor, quizás con nginx, para servir todo lo estático. Aquí no tenemos fórmulas mágicas como en PHP, que sueltas todo en un directorio y fuera, las cosas son un pelín más complicadas.
Generador de documentación
Los proyectos, aunque pongamos los medios, se documentan poco. Incluso, en la mayoría de los casos, el producto final no tiene mucho que ver con la documentación primigenia, y lo único que tenemos para documentar desde el punto de vista técnico es el código. Pues bien, si seguimos unos estándares en las definiciones de clases, funciones, etc. podremos aprovechar la potencia de herramientas como Sphynx, un generador de documentación muy potente, que nos ofrece la posibilidad de generar la API de nuestros desarrollos consultable en una aplicación HTML, PDF, LateX.
Compilador a EXE para Windows
Por último comentar que existe sólo para Windows un “compilador” que convierte los programas hechos en Python en programas EXE. El artífice de esto se llama Py2exe y consigue que podamos distribuir en plataformas Windows nuestro software sin preocuparnos de mucho más, ya que se encarga de proporcionar el intérprete y todas las dependencias que fuesen necesarias.