IPython - IPython
|
Powłoka IPythona
| |
| Pierwotny autor (autorzy) | Fernando Perez |
|---|---|
| Deweloper(zy) | Brian E. Granger, Min Ragan-Kelley, Paul Ivanov, Thomas Kluyver, Matthias Bussonnier |
| Pierwsze wydanie | 2001 |
| Wersja stabilna | |
| Magazyn | |
| Napisane w | Python , JavaScript , CSS , HTML |
| System operacyjny | Wieloplatformowy |
| Rodzaj | Powłoka |
| Licencja | BSD |
| Strona internetowa |
ipython |
IPython (interaktywny Python) to powłoka poleceń do interaktywnego przetwarzania w wielu językach programowania, pierwotnie opracowana dla języka programowania Python , która oferuje introspekcję , multimedia , składnię powłoki, uzupełnianie tabulatorów i historię. IPython zapewnia następujące funkcje:
- Powłoki interaktywne (terminalowe i oparte na Qt ).
- Interfejs notatnika oparty na przeglądarce z obsługą kodu, tekstu, wyrażeń matematycznych, wykresów wbudowanych i innych mediów.
- Wsparcie dla interaktywnej wizualizacji danych i korzystania z zestawów narzędzi GUI.
- Elastyczne, wbudowane interpretery, które można załadować do własnych projektów.
- Narzędzia do obliczeń równoległych .
Równoległe obliczenia
IPython opiera się na architekturze, która zapewnia przetwarzanie równoległe i rozproszone. IPython umożliwia interaktywne tworzenie, uruchamianie, debugowanie i monitorowanie aplikacji równoległych, stąd I (Interaktywny) w IPythonie. Ta architektura abstrahuje od paralelizmu, umożliwiając IPythonowi obsługę wielu różnych stylów paralelizmu, w tym:
- Pojedynczy program, wiele danych ( SPMD ) równoległość
- Wiele programów, wiele danych ( MPMD ) równoległość
- Przekazywanie wiadomości za pomocą MPI
- Równoległość zadań
- Równoległość danych
- Kombinacje tych podejść
- Niestandardowe podejścia zdefiniowane przez użytkownika
Wraz z wydaniem IPython 4.0, możliwości obliczeń równoległych stały się opcjonalne i wydane w ramach pakietu ipyparallel python. Większość możliwości ipyparallel jest teraz obsługiwana przez bardziej dojrzałe biblioteki, takie jak Dask .
IPython często czerpie z bibliotek stosu SciPy, takich jak NumPy i SciPy , często instalowanych wraz z jedną z wielu dystrybucji Scientific Python. IPython zapewnia integrację z niektórymi bibliotekami stosu SciPy , w szczególności matplotlib , tworząc wykresy w wierszu , gdy jest używany z notatnikiem Jupyter. Biblioteki Pythona mogą implementować zaczepy specyficzne dla IPython, aby dostosować wyświetlanie obiektów bogatych. SymPy na przykład implementuje renderowanie wyrażeń matematycznych jako renderowanego LaTeX, gdy jest używane w kontekście IPython, a Dataframe Pandas używa reprezentacji HTML.
Inne funkcje
IPython umożliwia nieblokującą interakcję z Tkinter , PyGTK , PyQt / PySide i wxPython (standardowa powłoka Pythona umożliwia interakcję tylko z Tkinter). IPython może interaktywnie zarządzać równoległymi klastrami obliczeniowymi za pomocą asynchronicznych wywołań zwrotnych stanu i/lub MPI . IPython może być również używany jako zamiennik powłoki systemowej. Jego domyślne zachowanie jest w dużej mierze podobne do powłok uniksowych , ale umożliwia dostosowanie i elastyczność wykonywania kodu w żywym środowisku Pythona.
Koniec obsługi Pythona 2
Seria IPython 5.x (Long Time Support) to ostatnia wersja IPythona obsługująca Pythona 2. Projekt IPython zobowiązał się nie wspierać Pythona 2 po 2020 roku, będąc jednym z pierwszych projektów, które dołączyły do instrukcji Python 3 , 6.x seria jest zgodna tylko z Python 3 i nowszymi. Nadal możliwe jest jednak uruchomienie jądra IPython i serwera Jupyter Notebook na różnych wersjach Pythona, umożliwiając użytkownikom nadal dostęp do Pythona 2 w nowszej wersji Jupyter.
Projekt Jupyter
W 2014 roku Fernando Pérez ogłosił projekt spin-off z IPython o nazwie Project Jupyter . IPython nadal istniał jako powłoka i jądro Pythona dla Jupyter, ale interfejs notebooka i inne niezależne od języka części IPythona zostały przeniesione pod nazwą Jupyter. Jupyter jest niezależny od języka, a jego nazwa jest odniesieniem do podstawowych języków programowania obsługiwanych przez Jupyter, którymi są Julia , Python i R .
Jupyter Notebook (dawniej IPython Notebooks) to internetowe interaktywne środowisko obliczeniowe do tworzenia, wykonywania i wizualizacji notesów Jupyter. Jest podobny do interfejsu notebooka innych programów, takich jak Maple , Mathematica i SageMath , stylu interfejsu obliczeniowego, który powstał w Mathematica w latach 80. XX wieku. Obsługuje środowiska wykonawcze (inaczej jądra) w kilkudziesięciu językach. Domyślnie Jupyter Notebook jest dostarczany z jądrem IPython, ale w maju 2018 r. istnieje ponad 100 jąder Jupyter.
W mediach
IPython został wymieniony w popularnej prasie komputerowej i innych popularnych mediach, a także jest obecny na konferencjach naukowych. W przypadku prac naukowych i inżynieryjnych jest często przedstawiany jako narzędzie towarzyszące matplotlib .
Granty i nagrody
Od 1 stycznia 2013 r. Fundacja Alfreda P. Sloana ogłosiła, że będzie wspierać rozwój IPythona przez dwa lata.
23 marca 2013 roku Fernando Perez otrzymał nagrodę Free Software Foundation Advancement of Free Software za IPython.
W sierpniu 2013 r. Microsoft przekazał darowiznę w wysokości 100 000 USD na sponsorowanie dalszego rozwoju IPython.
W styczniu 2014 roku zdobył nagrodę Jolt Productivity Award od Dr. Dobb's w kategorii narzędzi do znakowania. W lipcu 2015 r. projekt uzyskał dofinansowanie w wysokości 6 milionów dolarów od Fundacji Gordona i Betty Moore, Fundacji Alfreda P. Sloana oraz Fundacji Leona M. i Harry B. Helmsley Charitable Trust.
W maju 2018 roku otrzymał nagrodę 2017 ACM Software System Award. To największy zespół, który zdobył tę nagrodę.