Emacs como IDE de python

Si, emacs como IDE de python. Emacs es una poderosa herramienta (y dificil) pero una vez que le agarras la mano, quieres usar emacs con todo. Este es un ejemplo. Voy a mostrar como integrar python a emacs.

Python shell

Emacs trae por defecto python. Para abrir una consola de python simplemente debemos escribir el siguiente comando:

[Source code](#codesyntax_8 "Click to show/hide code block")[![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png)](#codesyntax_8 "Show code only") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png)](#codesyntax_8 "Print code") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif)](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/About.html "Show plugin information")
```
M-x run-python
```
Elpy

Elpy es una herramientas que nos brinda varias funcionalidades como por ejemplo el autocompletado, leer documentación, ejecución de tests, etc.

Les dejo documentación y el repositorio en github.

Para instalar el complemento, en primer lugar debemos agregar las siguientes líneas en ~/.emacs. (Si sos nuevo como yo, seguramente no vas a encontrar este archivo, simplemente tenes que crear un archivo llamado .emacs en ~/)

[Source code](#codesyntax_9 "Click to show/hide code block")[![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png)](#codesyntax_9 "Show code only") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png)](#codesyntax_9 "Print code") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif)](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/About.html "Show plugin information")
```
(require 'package)
(add-to-list 'package-archives
             '("elpy" . "http://jorgenschaefer.github.io/packages/"))
```
Y luego actualizamos la lista de paquetes haciendo
[Source code](#codesyntax_10 "Click to show/hide code block")[![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png)](#codesyntax_10 "Show code only") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png)](#codesyntax_10 "Print code") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif)](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/About.html "Show plugin information")
```
M-x package-refresh-contents
```
Por último instalamos el paquete haciendo:
[Source code](#codesyntax_11 "Click to show/hide code block")[![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png)](#codesyntax_11 "Show code only") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png)](#codesyntax_11 "Print code") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif)](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/About.html "Show plugin information")
```
M-x package-install RET elpy RET
```
Y una vez que está instalado lo activamos haciendo:
[Source code](#codesyntax_12 "Click to show/hide code block")[![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png)](#codesyntax_12 "Show code only") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png)](#codesyntax_12 "Print code") [![](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif)](https://eamanu.com/blog/wp-content/plugins/wp-synhighlight/About.html "Show plugin information")
```
(elpy-enable)
```
También es necesario instalar algunas bibliotecas para que funcione correctamente:

elpy jedi flake8 importmagic autopep8 yapf epc (con un pip install lo haces)

Funcionamiento

Cuando ya tenga todo instalado, ya podes empezar a tirar tus lineas de código en emacs. Vas a ver que ya está funcionando el autocompletado:

Con el comando

<pre lang="lisp">C-c C-d

podes ver la documentación.

También tiene la capacidad de indicarte cuando estás rompiendo con algunos de las indicaciones del PEP8. Así que vas a poder tener tu código siguiente el codestyle recomendado.

Y para enviar el código a la consola se debe ejecutar

<pre lang="lisp">C-c C-c