IPython

De Wikipedia, la enciclopedia libre
IPython
Información general
Tipo de programa software libre
Autor Fernando Pérez
Desarrollador Scipy
Lanzamiento inicial 2001
Licencia BSD license
Estado actual Con soporte
Información técnica
Programado en
Interfaz gráfica predeterminada Qt
Versiones
Última versión estable 3.1 ( 3 de abril de 2015)
Archivos legibles
Jupyter notebook file
Archivos editables
Jupyter notebook file
Enlaces

IPython es un shell interactivo que añade funcionalidades extra al modo interactivo incluido con Python, como resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, autocompletado mediante tabulador de variables, módulos y atributos; entre otras funcionalidades. Es un componente del paquete SciPy.

Computación en paralelo Parallel computing[editar]

IPython está basado en una arquitectura que suministra computación distribuida y en paralelo. IPython permite la ejecución de aplicaciones en paralelo, pudiéndose estas desarrollar, ejecutar, depurar y ser monitoreadas interactivamente. Es por esto que el nombre de IPython toma la letra I del inicio, como referencia a interactivo. La arquitectura abstrae situaciones en paralelo, lo que permite a IPython dar soporte a múltiples tipos de computación en paralelo. Entre estos se incluyen:

  • Paralelismo «un programa, múltiples datos» (SPMD por sus siglas en inglés).
  • Paralelismo «múltiples programas, múltiples datos» (MPMD).
  • Paso de mensajes usando MPI.
  • Paralelismo de control.
  • Paralelismo de datos.
  • Combinación de las aproximaciones anteriores.
  • Aproximaciones personalizables por los usuarios.

Notebook[editar]

El cuaderno Notebook de IPython está basado en la web y es interactivo. Un notebook en IPython es un documento JSON que contiene una lista ordenada de entradas / salidas las cuales pueden tener código, texto, matemáticas, dibujos y rich media. Los notebooks de IPython pueden ser convertidos a otros formatos de archivos como HTML, presentaciones de diapositivas, LaTeX, PDF, Python, etc).

Proyecto Jupyter[editar]

En 2014 Fernando Pérez anunció un proyecto alternativo a IPython llamado Jupyter.[1]​ IPython seguirá existiendo como un shell de Python y como kernel para Jupyter, mientras que el notebook y otras partes de IPython pasarán a formar parte del proyecto Jupyter.[2]​ Jupyter añadió soporte para Julia, R, Haskell y Ruby al notebook

IPython Notebook workflows

Otras características[editar]

IPython incluye además una versión en GNU/Linux para ser ejecutado en X y usando la biblioteca wxWidgets. En el uso de bibliotecas GUI, IPython no permite el bloqueo en la interacción con Tkinter, GTK+, Qt ni wxWidgets; solo permite la interacción con Tkinter. Ipython puede gestionar de forma interactiva el uso paralelo de varios clústeres. IPython puede ser utilizado para reemplazar el shell de sistema gracias a lo flexible y modificable que es mediante su archivo de configuración, especialmente en windows. El shell de IPython recuerda a un shell de unix, e incluso permite usar comandos bash durante su uso para, por ejemplo, cambiar de directorio de trabajo.

En los medios de comunicación[editar]

Captura de pantalla del terminal IPython en OSX usando iTerm 2. Este archivo muestra el cálculo de una transformación fast-Fourrier usando numpy, que se muestra con una ventana TK de matplotlib, y muestra la edición multilínea, el resaltado de color y las finalizaciones de pestañas en IPython.

IPython ha sido mencionado en prensa del ámbito informático,[3]​ y en conferencias del mundo científico.[4]​ IPython es considerado como una herramienta para el trabajo científico, y frecuentemente ha sido presentado junto con Matplotlib[5]

Fin de la compatibilidad con Python 2[editar]

La serie IPython 5.x (Long Time Support) es la última versión de IPython compatible con Python 2. El proyecto IPython se comprometió a no admitir Python 2 después de 2020[6]​ al ser uno de los primeros proyectos en unirse a la Declaración de Python 3, el La serie 6.x solo es compatible con Python 3 y versiones posteriores. Sin embargo, todavía es posible ejecutar un kernel IPython y un servidor Jupyter Notebook en diferentes versiones de Python, lo que permite a los usuarios acceder a Python 2 en la versión más reciente de Jupyter.[7]

Proyecto Jupyter[editar]

notebook de IPython en 2014.

En 2014, Fernando Pérez anunció un proyecto derivado de IPython llamado Project Jupyter.[8]​ IPython continuó existiendo como un shell y kernel de Python para Jupyter, pero la interfaz del notebook y otras partes independientes del lenguaje de IPython se movieron bajo el nombre de Jupyter. Jupyter es independiente del lenguaje y su nombre es una referencia a los lenguajes de programación centrales compatibles con Jupyter, que son Julia, Python y R.[9]

Jupyter Notebook (anteriormente IPython Notebooks) es un entorno computacional interactivo basado en web para crear, ejecutar y visualizar cuadernos de Jupyter. Es similar a la interfaz de cuaderno de otros programas como Maple, Mathematica y SageMath, un estilo de interfaz computacional que se originó con Mathematica en la década de 1980. Admite entornos de ejecución (también conocidos como núcleos) en docenas de idiomas. De forma predeterminada, Jupyter Notebook se envía con el kernel de IPython, pero hay más de 100 kernels de Jupyter a partir de mayo de 2018.

Referencias[editar]

  1. Python for all (2): What are Jupyter Notebooks?
  2. https://youtube.com/devicesupport, 17 de abril de 2015, consultado el 26 de mayo de 2015 .
  3. Conrad Koziol (September 12, 2005). "Introducing IPython". NewsForge.
  4. «About/Presentations - IPython». Archivado desde el original el 5 de febrero de 2010. Consultado el 26 de febrero de 2010. 
  5. IPython: A System for Interactive Scientific Computing.
  6. «Release of IPython 5.0 – Jupyter Blog». Jupyter Blog. 8 de julio de 2016. Consultado el 11 de abril de 2018. 
  7. Jake VanderPlas (2016). Python Data Science Handbook. O'Reilly Media. ISBN 978-1491912058. 
  8. «Project Jupyter // Speaker Deck». 
  9. «Jupyter Logo · jupyter/Design Wiki». 

Enlaces de interés[editar]