Читать книгу Python a fondo - Óscar Ramírez Jiménez - Страница 68

1.17.1 Entornos de desarrollo open source

Оглавление

En esta categoría se verán los entornos de desarrollo open source más utilizados para desarrollar Python. Se mencionarán algunos trucos o recomendaciones para mejorar la experiencia de su uso y las características principales de cada uno. Se han ordenado según su especialización para desarrollar programas en Python, de menor especialización (más generales) a más específicos.

Vim

Vim (Vi Improved, https://www.vim.org/) es el IDE utilizado por muchos desarrolladores para distintos lenguajes de programación. Cuenta con plugins y soporte para Python, lo que lo convierte en un potente editor. Algunas características de este editor son:

• Editor de texto orientado a consola, así que prácticamente todo el desarrollo se puede hacer sin utilizar el ratón.

• Utiliza combinaciones de teclas para poder moverse o editar rápidamente, y dispone de varios modos de operación, no solo del modo "edición" presente en la mayoría de editores.

• Es un editor que requiere mucho tiempo de aprendizaje y configuración, por lo que es algo avanzado para programadores novatos.

• Es un editor altamente configurable y modulable.

• Toda la configuración se puede hacer en un único fichero de configuración, lo que permite que sea muy portable y tener la misma configuración en diferentes entornos rápidamente.

• Se organiza en buffers (a modo de ventanas en consola). Puede dividir cada buffer vertical y horizontalmente, por lo que permite tener múltiples ficheros abiertos en la misma pantalla y moverse con facilidad entre ellos.

• Su principal beneficio es que permite editar texto extremadamente rápido. Tiene funcionalidades por defecto como macros donde se pueden guardar una serie de modificaciones y repetirlas N veces sin esfuerzo, o edición vertical de múltiples líneas de forma nativa.

• Aunque esté concebido para ser usado en consola, también existen implementaciones con interfaz de ventana, como gVim o MacVim.

• Uno de los beneficios importantes es que se puede integrar con programas de consola como tmux (https://github.com/tmux/tmux/wiki), en el que se puede tener el editor de código y su ejecución en la misma consola, sin tener que salir de ella, lo que permite ahorrar tiempo de desarrollo.


Figura 1.14 MacVim configurado para programar Python.

Vim suele venir instalado por defecto en la mayoría de sistemas operativos Unix, pero en Mac o en Windows hay que instalarlo aparte.

Si no está instalado en su sistema Unix, se puede encontrar fácilmente en el repositorio de paquetes de su distribución buscando el paquete vim. En Windows será necesario descargar el ejecutable compilado del programa de la web oficial, https://www.vim.org/download.php. En Mac OS se puede instalar usando homebrew o usando el proyecto alternativo MacVim (https://macvim-dev.github.io/macvim/).

Es importante que este editor tenga el soporte para Python activado. Se puede comprobar lanzando el siguiente comando por consola y buscando por +python:


El archivo de configuración suele estar en la carpeta de usuario como archivo oculto con el nombre .vimrc, y la configuración básica para poder desarrollar de manera eficiente en Python sería:


Con esta mínima configuración se tiene la indentación correcta y las herramientas más básicas. Existen varios proyectos que añaden más funciones, como los validadores de PEP-8 integrados, el sistema de navegación de archivos, la búsqueda de información, etc. Uno de esos proyectos es Python-mode https://github.com/python-mode/python-mode. Usándolo se pueden utilizar configuraciones avanzadas de programadores expertos para conseguir "el editor perfecto". El objetivo es dar con el editor en el que el desarrollador se encuentre más cómodo y sea más productivo.

Emacs

Otra alternativa de editor que usa la consola de comandos es Emacs. Emacs está desarrollado en Lisp y es otro de los editores mundialmente utilizados para desarrollar diferentes lenguajes de programación. Como Vim, puede ser altamente personalizado para satisfacer los gustos de cada programador.

A diferencia de Vim, Emacs está por defecto en modo edición y solo sabiendo los comandos correctos se puede hacer uso de funciones avanzadas.

Emacs cuenta con plugins que permiten extender ampliamente las funcionalidades del editor y convertirlo en una excelente herramienta para desarrollar Python. Sin embargo, a diferencia de Vim, las instalaciones o configuraciones hay que hacerlas escribiendo código en Lisp, en vez de tener un fichero de configuración con sintaxis propia del editor. Por suerte, no son difíciles de añadir, y cada plugin cuenta con la documentación necesaria para que su uso sea fácil.


Figura 1.15 Emacs usando Elpy para programar en Python.

Uno de los plugins más utilizados para convertir Emacs en un editor de código Python es Elpy (https://github.com/jorgenschaefer/elpy). Con él se añaden funcionalidades como autocompletado y navegación de código, validación de sintaxis, modo depuración, análisis de rendimiento, etc. Para instalar este plugin en Emacs solo hay que cambiar el fichero ~/.emacs añadiendo el siguiente comando o instalándolo desde el repositorio de paquetes de Emacs (Melpa).


Atom

Atom es un editor de texto moderno, open source, altamente configurable y multiplataforma. Fue creado por los desarrolladores de GitHub y, como dice su eslogan, pretende ser un editor de textos hackeable del siglo XXI (A hackable text editor for the 21st Century).

Una de las características fundamentales de este editor es que es intuitivo y fácil de usar, por lo que cualquiera puede comenzar a programar en cualquier lenguaje en cuestión de minutos y de forma gratuita. Tiene soporte para Python; detecta y colorea de forma correcta el código Python sin necesidad de utilizar un plugin adicional.


Figura 1.16 Atom para programar Python usando el plugin de autocomplete-python.

Uno de los pilares fundamentales es que tiene un sistema de paquetes que permite instalar nuevos plugins, es multiplataforma, tiene un navegador de archivos, capacidad de utilizar múltiples paneles para separar tanto horizontal como verticalmente la pantalla y una integración por defecto con el sistema de control de versiones Git y con el repositorio de código GitHub.

Para la integración con Python se pueden encontrar paquetes como:

Autocomplete-Python: permite autocompletar código Python, buscar la definición de cada parte del código, buscar uso de objetos, etc. Usa populares paquetes como jedi o Kite para hacer los autocompletados, por lo que es altamente recomendable. https://atom.io/packages/autocomplete-python

Linter-pylint: plugin que permite integrar pylint para comprobar que se sigue la PEP-8, detectar errores, etc. https://atom.io/packages/linter-pylint

Script: herramienta para realizar ejecuciones de código de lenguajes, entre ellos, Python. https://atom.io/packages/script

Python-debugger: herramienta para poder depurar código Python de forma intuitiva. https://atom.io/packages/python-debugger

IDE-Python: es un paquete que se compone de otros paquetes útiles como jedi, rope, pyflakes, pylint, flake8 y YAPF. https://atom.io/packages/ide-python

IDLE

IDLE (integrated development and learning environment) es un IDE escrito puramente en Python utilizando las librerías de Tkinter. Permite realizar operaciones como la edición de ficheros, depuración de código con puntos de ruptura persistentes, tener varias ventanas de edición, búsqueda en cualquier ventana de edición, coloreado de gramática Python, autocompletado y otras muchas posibilidades.


Figura 1.17 Usando IDLE en macOS para programar en Python.

Se instala por defecto con la mayoría de distribuciones de Python y también cuando se instala Python como paquete externo al gestor de ficheros del sistema operativo. Por esto, en Windows o en macOS es fácil que se tenga ya instalado al haber instalado el intérprete de Python, mientras que, cuando Python ya está preinstalado en el sistema, normalmente hay que instalarlo aparte.

PyDev

Eclipse (https://www.eclipse.org/eclipseide/) es un IDE de software libre muy popular entre los desarrolladores de Java, JavaScript, PHP, Rust y otros lenguajes, pero también se puede utilizar para desarrollar Python instalando PyDev (https://www.pydev.org/index.html).


Figura 1.18 Usando PyDev para programar en Python.

PyDev tiene autocompletado de código, ayudas para acceder a la definición de los objetos, depurador tanto en la máquina local como en remoto, integración de pylint y muchas otras características importantes.

Es un editor de primer nivel, dado que, al basarse en Eclipse, que ha sido utilizado durante años por muchos desarrolladores de diferentes lenguajes, se han ido añadiendo múltiples características que se pueden aprovechar ahora usando PyDev.

Una de las principales ventajas que presenta este editor es que, una vez se instala PyDev dentro de Eclipse, todas las herramientas necesarias para programar en Python ya están instaladas y no hay que instalarlas una a una por separado. No obstante, esto también puede ser un inconveniente, dado que no presenta los mismos beneficios de poder configurarlo a gusto del desarrollador ni los editores comentados anteriormente.

Otra gran ventaja de usar este IDE es que, por defecto, ofrece poder lanzar el código Python usando Jython, que soporta fácilmente la integración de Python y Java.

Spyder

Spyder (https://github.com/spyder-ide/spyder) es un IDE moderno orientado al desarrollo científico utilizando Python. Está presente en el paquete de Anaconda (paquete comentado en secciones anteriores) por defecto y permite utilizar muchas herramientas de desarrollo científico, como Num-Py, Pandas para el manejo de datos, una consola interactiva donde se puede ejecutar código directamente y Matplotlib para la representación de imágenes, aparte de poder mostrar las variables utilizadas, incluso las complejas como dataframes, de forma totalmente transparente e intuitiva.


Figura 1.19 Usando Spyder para programar en Python.

Este IDE se puede utilizar por separado sin necesidad de instalarlo con el gestor de paquetes de Anaconda (Conda), y ciertas características como el analizador de código, el depurador de código, el divisor de pantalla para ver múltiples ficheros a la vez y algunos plugins que se muestran a continuación, hacen que sea un IDE muy completo y útil también para desarrollos no científicos.

Existen algunos plugins interesantes para este IDE:

Spyder Notebook: integra Jupyter Notebook dentro del IDE y se puede usar tanto en el editor como en la ventana principal. Esto permite gestionar los ficheros utilizados recientemente y autoguardar los modificados de forma sencilla.

Spyder Terminal: permite integrar una terminal en el mismo espacio de trabajo del editor, lo que aporta mucha más potencia al desarrollo y ejecución de Python, incluso en Windows.

Spyder UniTest: permite integrar frameworks de test directamente en el editor.

Spyder Reports: permite generar reportes utilizando markdown en una ventana separada del editor.

Visual Studio Code

Visual Studio Code (https://code.visualstudio.com/) es un IDE de código libre, ligero, rápido, estable y multiplataforma, creado por Microsoft para dar soporte a programadores de muchísimos lenguajes, entre ellos C#, C++, Java, PHP o Python.


Figura 1.20 Usando Visual Studio Code para programar en Python.

Al instalar el plugin para Python (https://marketplace.visualstudio.com/items?itemName=ms-python.python) el IDE se adapta para ser utilizado por cualquier desarrollador Python. Este IDE presenta características muy atractivas, por ejemplo: el autocompletado de sintaxis desarrollado por Microsoft llamado IntelliSense; la comprobación de sintaxis; herramientas de depuración, visualización de variables, navegación y formateado de código; ejecución por consola dentro del mismo entorno de programación; integración con Git y GitHub desde el propio IDE; soporte para Jupyter Notebook; herramientas para refactorizar, y muchas otras características.

Al ser un IDE con un gran soporte y utilizado por muchísimos desarrolladores, la integración con otros lenguajes y las herramientas desarrolladas para otros lenguajes se comparten con todos y, por tanto, el IDE se enriquece de manera orgánica a la vez que soporta más lenguajes de programación.

Python a fondo

Подняться наверх