IPython - IPython

IPython
IPython Logo.png
IPython-6.x-screenshot-osx.png
IPython Shell
Autori originali Fernando Perez
Sviluppatore/i Brian E. Granger, Min Ragan-Kelley, Paul Ivanov, Thomas Kluyver, Matthias Bussonnier
Versione iniziale 2001 ; 20 anni fa ( 2001 )
Rilascio stabile
7.26.0  Modificalo su Wikidata / 1 agosto 2021 ; 2 mesi fa ( 1 agosto 2021 )
Repository
Scritto in Python , JavaScript , CSS , HTML
Sistema operativo Multipiattaforma
Tipo Guscio
Licenza BSD
Sito web ipython .org Modificalo su Wikidata

IPython (Interactive Python) è una shell di comando per l'elaborazione interattiva in più linguaggi di programmazione, originariamente sviluppata per il linguaggio di programmazione Python , che offre introspezione , rich media , sintassi della shell, completamento delle schede e cronologia. IPython fornisce le seguenti funzionalità:

  • Shell interattive (terminali e basate su Qt ).
  • Un'interfaccia per notebook basata su browser con supporto per codice, testo, espressioni matematiche, grafici in linea e altri media.
  • Supporto per la visualizzazione interattiva dei dati e l'uso di toolkit GUI.
  • Interpreti flessibili e integrabili da caricare nei propri progetti.
  • Strumenti per il calcolo parallelo .

Calcolo parallelo

Image
Vista architettonica dei macchinari paralleli di IPython

IPython si basa su un'architettura che fornisce elaborazione parallela e distribuita. IPython consente lo sviluppo, l'esecuzione, il debug e il monitoraggio interattivo di applicazioni parallele, da cui l'I (Interattivo) in IPython. Questa architettura astrae il parallelismo, consentendo a IPython di supportare molti stili diversi di parallelismo, tra cui:

Con il rilascio di IPython 4.0, le capacità di elaborazione parallela sono state rese opzionali e rilasciate sotto il pacchetto ipyparallel python. E la maggior parte delle funzionalità di ipyparallel sono ora coperte da librerie più mature come Dask .

IPython attinge spesso da librerie stack SciPy come NumPy e SciPy , spesso installate insieme a una delle tante distribuzioni Scientific Python. IPython fornisce l'integrazione con alcune librerie dello stack SciPy , in particolare matplotlib , producendo grafici in linea quando utilizzato con il notebook Jupyter. Le librerie Python possono implementare hook specifici di IPython per personalizzare la visualizzazione di oggetti avanzati. SymPy, ad esempio, implementa il rendering di espressioni matematiche come LaTeX renderizzato quando utilizzato all'interno del contesto IPython e il dataframe di Panda utilizza una rappresentazione HTML.

Altre caratteristiche

IPython consente l'interazione non bloccante con Tkinter , PyGTK , PyQt / PySide e wxPython (la shell Python standard consente solo l'interazione con Tkinter). IPython può gestire in modo interattivo cluster di elaborazione parallela utilizzando callback di stato asincroni e/o MPI . IPython può essere utilizzato anche come sostituzione della shell di sistema. Il suo comportamento predefinito è in gran parte simile alle shell Unix , ma consente la personalizzazione e la flessibilità dell'esecuzione del codice in un ambiente Python live.

Fine del supporto per Python 2

La serie IPython 5.x (Long Time Support) è l'ultima versione di IPython a supportare Python 2. Il progetto IPython si è impegnato a non supportare Python 2 oltre il 2020 essendo uno dei primi progetti ad aderire alla dichiarazione Python 3 , la 6.x series è compatibile solo con Python 3 e versioni successive. È comunque possibile eseguire un kernel IPython e un server Jupyter Notebook su diverse versioni di Python consentendo agli utenti di accedere ancora a Python 2 sulla versione più recente di Jupyter.

Progetto Jupyter

Image
Vecchia interfaccia IPython Notebook

Nel 2014, Fernando Pérez ha annunciato un progetto spin-off di IPython chiamato Project Jupyter . IPython ha continuato ad esistere come shell e kernel Python per Jupyter, ma l' interfaccia del notebook e altre parti indipendenti dal linguaggio di IPython sono state spostate con il nome Jupyter. Jupyter è indipendente dal linguaggio e il suo nome è un riferimento ai principali linguaggi di programmazione supportati da Jupyter, che sono Julia , Python e R .

Jupyter Notebook (precedentemente IPython Notebooks) è un ambiente di calcolo interattivo basato sul Web per la creazione, l'esecuzione e la visualizzazione di notebook Jupyter. È simile all'interfaccia del notebook di altri programmi come Maple , Mathematica e SageMath , uno stile di interfaccia computazionale nato con Mathematica negli anni '80. Supporta ambienti di esecuzione (noti anche come kernel) in dozzine di lingue. Per impostazione predefinita, Jupyter Notebook viene fornito con il kernel IPython, ma a maggio 2018 ci sono oltre 100 kernel Jupyter.

Nei media

IPython è stato menzionato nella stampa informatica popolare e in altri media popolari e ha una presenza a conferenze scientifiche. Per il lavoro scientifico e ingegneristico, viene spesso presentato come strumento complementare a matplotlib .

Sovvenzioni e premi

A partire dal 1 gennaio 2013, la Fondazione Alfred P. Sloan ha annunciato che avrebbe sostenuto lo sviluppo di IPython per due anni.

Il 23 marzo 2013, Fernando Perez è stato insignito del premio Free Software Foundation Advancement of Free Software per IPython.

Nell'agosto 2013, Microsoft ha fatto una donazione di $ 100.000 per sponsorizzare il continuo sviluppo di IPython.

Nel gennaio 2014 ha vinto il Jolt Productivity Award del Dr. Dobb's nella categoria degli strumenti di codifica. Nel luglio 2015, il progetto ha vinto un finanziamento di 6 milioni di dollari dalla Gordon and Betty Moore Foundation, dalla Alfred P. Sloan Foundation e da Leona M. e Harry B. Helmsley Charitable Trust.

Nel maggio 2018 ha ricevuto l'ACM Software System Award 2017. È la squadra più numerosa ad aver vinto il premio.

Guarda anche

Riferimenti

link esterno