IPython - IPython

IPython
Logo IPythona.png
IPython-6.x-screenshot-osx.png
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 ; 20 lat temu ( 2001 )
Wersja stabilna
7.26.0  Edytuj to na Wikidanych / 1 sierpnia 2021 ; 2 miesiące temu ( 1 sierpnia 2021 )
Magazyn
Napisane w Python , JavaScript , CSS , HTML
System operacyjny Wieloplatformowy
Rodzaj Powłoka
Licencja BSD
Strona internetowa ipython .org Edytuj to na Wikidanych

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

Image
Widok architektoniczny równoległej maszynerii IPythona

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

Image
Stary interfejs notebooka IPython

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ę.

Zobacz też

Bibliografia

Zewnętrzne linki