¿Cuál es la diferencia entre Python e IPython?


220

¿Cuál es exactamente la diferencia entre Python e IPython ?

Si escribo código en Python, ¿se ejecutará en IPython como está o necesita ser modificado?

Sé que se supone que IPython es un shell interactivo para Python, pero ¿eso es todo? ¿O hay un lenguaje llamado IPython? Si escribo algo bajo IPython, ¿se ejecutará en Python y viceversa? Si hay diferencias, ¿cómo sé cuáles son? ¿Funcionarán todos los paquetes utilizados por Python como está en IPython?

Respuestas:


153

ipython es un shell interactivo construido con python.

Desde el sitio web del proyecto:

IPython proporciona un completo kit de herramientas para ayudarlo a aprovechar al máximo el uso de Python, con:

  • Potentes shells de Python (terminal y basados ​​en Qt).
  • Una computadora portátil basada en la web con las mismas características principales pero compatible con código, texto, expresiones matemáticas, diagramas en línea y otros medios enriquecidos.
  • Soporte para visualización interactiva de datos y uso de kits de herramientas GUI.
  • Intérpretes flexibles e integrables para cargar en sus propios proyectos.
  • Herramientas fáciles de usar y de alto rendimiento para computación paralela.

Tenga en cuenta que las primeras 2 líneas le dicen que le ayuda a aprovechar Python al máximo. Por lo tanto, no necesita alterar su código, el shell de IPython ejecuta su código de Python al igual que el shell de Python normal, solo que con más funciones.

Recomiendo leer el tutorial de IPython para tener una idea de las características que obtienes al usar IPython.


8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesGracias. Eso es todo lo que necesitaba saber.
Asdfsdjlka Asdfsdjlka

¿Puedes dar algunos comentarios sobre la velocidad de ejecución de ipython vs python? Me refiero a ipython puro, no a un cuaderno de ipython que implicaría un navegador.
Jason

2
@ Jason: es exactamente el mismo ciclo de evaluación. Puede haber algo de sobrecarga en la capa de presentación (análisis de los comandos de ipython, impresión bonita del resultado de la expresión), pero eso es todo un costo constante. Básicamente, muy, muy poca diferencia.
Martijn Pieters

19

IPython es básicamente el shell Python "recomendado", que proporciona funciones adicionales. No hay un lenguaje llamado IPython.


¿IPython es solo el REPL ??
Sr. Suryaa Jha

@ Mr.SuryaaJha Es un REPL, pero también está el REPL de python estándar (lo que obtienes cuando escribes pythonun shell).
BallpointBen

16

Incluso después de ver este hilo, pensé que ipython era un sinónimo para el shell de python, en otras palabras, al escribir python en la línea de comando, uno se puso en modo ipython.

De hecho, como se mencionó anteriormente, es un shell interactivo muy bueno (programa de línea de comandos) que se puede instalar desde iPython.org o simplemente ejecutando

pip install ipython

o el más extenso:

pip install ipython[notebook]

desde la línea de comando.


1
Buen punto, @Roadowl, supongo que decir "shell interactivo" es un poco redundante, ¿no?
MikeiLL

@Roadowl: (un año después, pero aún así ...) ¿Qué tal cualquier shell que ejecuta un script de una manera no interactiva? Tal vez un ejemplo simple: $ sh -c 'foobar=3.14159'... o tal vez no entendí bien tu comentario.
Cbhihe

12

IPython es un poderoso intérprete interactivo de Python que es más interactivo en comparación con el intérprete estándar.

Para obtener el intérprete de Python estándar que escribe pythony recibirá el >>>aviso desde donde puede trabajar.

Para obtener el intérprete de IPython, primero debe instalarlo. pip install ipython. Escribes ipythony obtienes In [1]:un mensaje y obtienes In [2]:el siguiente comando. Puede llamar historypara verificar la lista de comandos anteriores y escribir %recall 1para recuperar el comando.

Incluso si está en Python, puede ejecutar comandos de shell directamente como !ping www.google.com. Parece un cuaderno de Júpiter de línea de comando si lo usaste antes.

Puede usar [Tab]para autocompletar como se muestra en la imagen. ingrese la descripción de la imagen aquí


6

Hay pocas diferencias entre Python e IPython, pero son solo la interpretación de pocas sintaxis como las pocas mencionadas por @Ryan Chase, pero en el fondo se mantiene el verdadero sabor de Python incluso en Ipython.

La mejor parte de IPython es el cuaderno de IPython. Puede poner todo su trabajo en un cuaderno como script, archivos de imagen, etc. Pero con Python base, solo puede hacer el script en un archivo y ejecutarlo.

Al principio, debe comprender que IPython se desarrolla con la intención de admitir medios enriquecidos y secuencias de comandos Python en un único contenedor integrado.


6

En comparación con Python, IPython (creado por Fernando Pérez en 2001) puede hacer todo lo que Python puede hacer. Ipython proporciona incluso funciones adicionales como completar pestañas, pruebas, depuración, llamadas al sistema y muchas otras funciones. Puedes pensar en IPython como una interfaz poderosa para el lenguaje Python.

Puedes instalar Ipython usando pip -pip install ipython

Puede ejecutar Ipython escribiendo ipythonen la ventana de su terminal.


2

Según mi experiencia, descubrí que algunos comandos que se ejecutan en IPython no se ejecutan en Python base. Por ejemplo, pwdy lsno trabaje solo en Python base. Sin embargo, funcionarán si están precedidos por %: %pwdy %ls.

Además, en IPython, puede ejecutar el comando cd como: cd C:\Users\... Esto no parece funcionar en la base de Python, incluso cuando está precedido por un %sin embargo.


3
import os; os.system('pwd')es la forma en que lo hago en Python.
Todo será el

2
Todos los %comandos son comandos de ipython y no funcionan en una sesión interactiva normal de Python. Eso incluye %pwdy %ls. El %prefijo es opcional y solo se requiere cuando no hay conflicto con un Python global en su sesión actual.
Martijn Pieters
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.