Mi infraestructura para Python

Resumen:

  • He decidido usar RStudio como IDE para Python. RStudio no es el mejor IDE para desarrollar, pero es incomparablemente mejor que cualquier otro IDE para explorar, etc. Funciona muy bien y solo puede mejorar.
  • He decidido pasar de Jupyter. Los notebooks valen para lo que valen, pero no para lo que hago. En caso de necesidad, uso Rmarkdown con bloques de Python. De nuevo, funcionan muy bien y solo pueden mejorar.
  • Finalmente, he decidido pasar de Anaconda. Tiene incompatibilidades con RStudio. Particularmente, cuando los módulos de Python tratan de cargar shared libraries. Los módulos de Anaconda tienen el vicio de buscarlos dentro del directorio de instalación, pero al lanzar el intérprete de Python a través de reticulate, en Linux parece que los busca en el sistema (por debajo de /usr/lib y similares). Y todo se rompe mucho. Mucho y muy, muy feo.

Así que uso los Python (3.7 cuando puedo, otras versiones cuando me obligan) del sistema. Pero la instalación del sistema es mínima. He creado varios environments ad hoc (y dentro de un directorio ad hoc para ellos) y obigo a reticulate a usarlos (vía use_virtualenv()) según conveniencia. En ellos tengo todas las dependencias (de numpy para arriba).

Finalmente, el fichero requirements.txt de los entornos son enlaces blandos a una serie de ficheros requirements_xxx.txt que guardo en un directorio que comparto entre mis máquinas.

Nota final: Uso Ubuntu 18.04.

7 comentarios sobre “Mi infraestructura para Python

  1. José Luis Hidalgo 6 junio, 2019 12:07

    A juzgar por el entusiasmo con que algunos defienden que EMACS es el mejor entorno para hacer todo, desde desarrollo web a componer música o tomar notas en una clase, la conclusión ineludible es que lo de los entornos de trabajo es un tema de preferencias personales. Pero aún así, usar RStudio como IDE para python me suena a resistencia al cambio (o como dicen en México, «dar patadas de ahogado»).
    Lo de no usar notebooks lo entiendo más, en eso hay gustos para todo. Hay quien prefiere un editor de código y una sesión interactiva por separado, y quien prefiere mezclarlo todo; al final es un tema de disciplina (en el primer caso, disciplina para poner lo que sea «bueno» en el editor de código en vez de en la sesión interactiva, y en el segundo disciplina para ir limpiando lo que son simples pruebas). Pero está claro que la evolución de Jupyter, con el Jupyter Lab, es hacia parecerse más a RStudio, no menos, y a depender menos del formato «notebook» y permitir distintos modos de trabajar.
    Y sobre Anaconda… toda la razón del mundo. Creo que este mismo fin de semana voy a cambiar mi entorno de desarrollo para dejar de usar Anaconda de una vez y gestionar las cosas manualmente: van decenas de veces que cualquier cambio con Anaconda me estropea el funcionamiento de Tensorflow o PyTorch con la GPU y me descuadra todo.

  2. Paco 6 junio, 2019 13:41

    No conocía que se podía utilizar RStudio con Python. Enhorabuena por conseguirlo!
    Yo uso Sublime Text. Probé Spyder y me pareció un buen equivalente a RStudio pero al no poder instarlo sin Anaconda desistí.

  3. Juan V. 6 junio, 2019 22:56

    Supongo que conoces Spyder que es lo más parecido a RStudio para Phyton que yo conozca. Sorprendido ando de la cantidad de problemas de versiones, compatabilidades y IDEs que voy escuchando y sufriendo en Phyton y R. Esto con SAS no pasaba.

  4. Enrique 7 junio, 2019 0:11

    Nunca se me hubiera ocurrido que podía ejecutar Python bajo RStudio. A probarlo!!!

  5. José Luis Cañadas 7 junio, 2019 20:23

    Y no digamos ya lo usar reticulate no como repl sino llamar a librerías de python y usar sus funciones dentro de R. Eso ya es demasiada locura, pero se puede, de hecho, así es como han desarrollado keras en R.

  6. Emilio 8 junio, 2019 11:39

    Poco a poco vas descubriendo la necesidad de disponer de un entorno de trabajo versátil, como el que proporciona emacs.

    Como RStudio no es configurable, estás supeditado a lo que decida el señor Hadley. Aunque sí opino que su orientación comercial le hará crear módulos específicos vinculados a los lenguajes más populares de análisis de datos, incluyendo python o julia.

Comenta

Your email address will not be published.

Puedes usar estas etiquetas y atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.