Qual è la differenza tra Python e IPython?


220

Qual è esattamente la differenza tra Python e IPython ?

Se scrivo codice in Python, verrà eseguito in IPython così com'è o deve essere modificato?

So che IPython dovrebbe essere una shell interattiva per Python, ma è tutto? O esiste un linguaggio chiamato IPython? Se scrivo qualcosa in IPython, verrà eseguito in Python e viceversa? Se ci sono differenze, come faccio a sapere quali sono? Tutti i pacchetti utilizzati da Python funzioneranno come in IPython?

Risposte:


153

ipython è una shell interattiva costruita con Python.

Dal sito web del progetto:

IPython fornisce un ricco toolkit per aiutarti a ottenere il massimo dall'uso di Python, con:

  • Potenti shell Python (terminali e basate su Qt).
  • Un notebook basato sul Web con le stesse funzionalità di base ma supporto per codice, testo, espressioni matematiche, grafici incorporati e altri contenuti multimediali.
  • Supporto per la visualizzazione interattiva dei dati e l'uso di toolkit GUI.
  • Interpreti flessibili e incorporabili da caricare nei tuoi progetti.
  • Strumenti facili da usare e ad alte prestazioni per il calcolo parallelo.

Nota che le prime 2 righe ti dicono che ti aiuta a sfruttare al meglio l'utilizzo di Python. Pertanto, non è necessario modificare il codice, la shell IPython esegue il codice Python proprio come fa la normale shell Python, solo con più funzionalità.

Ti consiglio di leggere il tutorial di IPython per avere un'idea delle funzionalità che ottieni quando usi IPython.


8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesGrazie. Questo è tutto ciò che dovevo sapere.
Asdfsdjlka Asdfsdjlka

Puoi fornire alcuni commenti sulla velocità di esecuzione di ipython vs python? Intendo ipython puro, non notebook ipython che implicherebbe un browser.
Jason

2
@Jason: è esattamente lo stesso ciclo di valutazione. Potrebbe esserci un certo sovraccarico nel livello di presentazione (analisi dei comandi ipython, stampa piuttosto dell'output dell'espressione), ma è tutto un costo costante. Quindi, in pratica, una differenza molto piccola.
Martijn Pieters

19

IPython è fondamentalmente la shell "consigliata" di Python, che offre funzionalità extra. Non esiste un linguaggio chiamato IPython.


IPython è solo il REPL ??
Mr. Suryaa Jha,

@ Mr.SuryaaJha È un REPL, ma c'è anche solo il REPL standard di Python (cosa ottieni quando digiti pythonuna shell).
BallpointBen,

16

Anche dopo aver visto questo thread, avevo pensato che ipython fosse sinonimo di shell python, in altre parole che digitando python dalla riga di comando si mettesse in modalità ipython.

È infatti, come indicato sopra, una shell interattiva (programma a riga di comando) molto interessante che può essere installata da iPython.org o semplicemente eseguendo

pip install ipython

o il più esteso:

pip install ipython[notebook]

dalla riga di comando.


1
Bene, @Roadowl suppongo che dire "shell interattiva" sia un po 'ridondante, non è vero.
MikeiLL,

@Roadowl: (un anno dopo, ma ancora ...) Che ne dici di una shell che esegue uno script in modo non interattivo? Forse un semplice esempio: $ sh -c 'foobar=3.14159'... o forse ho frainteso il tuo commento.
Cbhihe,

12

IPython è un potente interprete Python interattivo che è più interattivo rispetto all'interprete standard.

Per ottenere l'interprete Python standard digiti pythone otterrai il >>>prompt da cui puoi lavorare.

Per ottenere l'interprete IPython, devi prima installarlo. pip install ipython. Digiti ipythone ricevi In [1]:come prompt e ottieni In [2]:il comando successivo. È possibile chiamare historyper controllare l'elenco dei comandi precedenti e scrivere %recall 1per richiamare il comando.

Anche se sei in Python puoi eseguire comandi di shell direttamente come !ping www.google.com. Sembra un taccuino di Giove da riga di comando se lo hai usato prima.

È possibile utilizzare [Tab]per il completamento automatico come mostrato nell'immagine. inserisci qui la descrizione dell'immagine


6

Ci sono poche differenze tra Python e IPython ma sono solo l'interpretazione di poche sintassi come quelle menzionate da @Ryan Chase, ma nel profondo il vero sapore di Python è mantenuto anche in Ipython.

La parte migliore di IPython è il notebook IPython. Puoi mettere tutto il tuo lavoro in un taccuino come script, file di immagine, ecc. Ma con Python di base, puoi solo creare lo script in un file ed eseguirlo.

All'inizio, devi capire che IPython è sviluppato con l'intenzione di supportare rich media e script Python in un singolo contenitore integrato.


6

Rispetto a Python, IPython (creato da Fernando Perez nel 2001) può fare tutto ciò che può fare Python. Ipython offre anche funzionalità extra come il completamento delle schede, test, debug, chiamate di sistema e molte altre funzionalità. Puoi pensare a IPython come una potente interfaccia al linguaggio Python.

Puoi installare Ipython usando pip -pip install ipython

È possibile eseguire Ipython digitando ipythonnella finestra del terminale.


2

Dalla mia esperienza ho scoperto che alcuni comandi eseguiti in IPython non vengono eseguiti in Python di base. Ad esempio, pwde lsnon lavorare da solo in Python di base. Tuttavia funzioneranno se preceduti da un %tipo come: %pwde %ls.

Inoltre, in IPython, puoi eseguire il comando cd come: cd C:\Users\... Questo non sembra funzionare in Python di base, anche se preceduto da un %comunque.


3
import os; os.system('pwd')è il modo in cui lo faccio in Python.
Tutto il

2
Tutti i %comandi sono comandi ipython e non funzionano in una normale sessione interattiva Python. Ciò include %pwde %ls. Il %prefisso è facoltativo e richiesto solo in assenza di conflitti con un Python globale nella sessione corrente.
Martijn Pieters
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.