IPython (Interactive Python) — командная оболочка для интерактивных вычислений на нескольких языках программирования, изначально разработанная для языка программирования Python , которая предлагает интроспекцию , богатые медиа , синтаксис оболочки, автодополнение по табуляции и историю. IPython предоставляет следующие возможности:
IPython — это проект, спонсируемый NumFOCUS из финансовых средств. [3]
IPython основан на архитектуре, которая обеспечивает параллельные и распределенные вычисления. IPython позволяет разрабатывать, выполнять, отлаживать и контролировать параллельные приложения в интерактивном режиме, отсюда и I (Interactive) в IPython. [4] Эта архитектура абстрагирует параллелизм, позволяя IPython поддерживать множество различных стилей параллелизма [5], включая:
С выпуском IPython 4.0 возможности параллельных вычислений стали необязательными и были выпущены в составе пакета python ipyparallel. И большинство возможностей ipyparallel теперь покрываются более зрелыми библиотеками, такими как Dask .
IPython часто черпает из библиотек стека SciPy [6] , таких как NumPy и SciPy , часто устанавливаемых вместе с одним из многих дистрибутивов Scientific Python. [6] IPython обеспечивает интеграцию с некоторыми библиотеками стека SciPy , в частности matplotlib , создавая встроенные графики при использовании с блокнотом Jupyter . Библиотеки Python могут реализовывать специфичные для IPython хуки для настройки отображения расширенных объектов. Например, SymPy реализует рендеринг математических выражений в виде рендеринга LaTeX при использовании в контексте IPython, а Pandas dataframe использует представление HTML. [7]
IPython допускает неблокируемое взаимодействие с Tkinter , PyGTK , PyQt / PySide и wxPython (стандартная оболочка Python допускает взаимодействие только с Tkinter). IPython может интерактивно управлять параллельными вычислительными кластерами с помощью асинхронных обратных вызовов состояния и/или MPI . IPython также может использоваться в качестве замены системной оболочки. [8] Его поведение по умолчанию во многом похоже на оболочки Unix , но оно допускает настройку и гибкость выполнения кода в реальной среде Python.
Серия IPython 5.x (Long Time Support) — последняя версия IPython, поддерживающая Python 2. Проект IPython пообещал не поддерживать Python 2 после 2020 года [9], став одним из первых проектов, присоединившихся к заявлению Python 3; серия 6.x совместима только с Python 3 и выше. Тем не менее, по-прежнему возможно запускать ядро IPython и сервер Jupyter Notebook на разных версиях Python, что позволяет пользователям по-прежнему получать доступ к Python 2 на более новой версии Jupyter.
В 2014 году создатель IPython Фернандо Перес объявил о создании ответвления от IPython под названием Project Jupyter . [10] IPython продолжил свое существование как оболочка Python и ядро для Jupyter, но интерфейс блокнота и другие независимые от языка части IPython были перемещены под имя Jupyter. [11] [12] Jupyter не зависит от языка, и его название является ссылкой на основные языки программирования, поддерживаемые Jupyter, а именно Julia , Python и R. [13 ]
Jupyter Notebook (ранее IPython Notebook) — это интерактивная вычислительная среда на основе веб-технологий для создания, выполнения и визуализации блокнотов Jupyter. Он похож на интерфейс блокнотов других программ, таких как Maple , Mathematica и SageMath , стиль вычислительного интерфейса, который возник вместе с Mathematica в 1980-х годах. [14] Он поддерживает среды выполнения (т. е. ядра) на десятках языков. По умолчанию Jupyter Notebook поставляется с ядром IPython, но по состоянию на май 2018 года существует более 100 ядер Jupyter.
IPython упоминается в популярной компьютерной прессе и других популярных средствах массовой информации, [15] [14] и присутствует на научных конференциях. [16] Для научных и инженерных работ его часто представляют как сопутствующий инструмент для matplotlib . [17]
Начиная с 1 января 2013 года Фонд Альфреда П. Слоуна объявил, что будет поддерживать разработку IPython в течение двух лет. [18]
23 марта 2013 года Фернандо Перес был удостоен награды Free Software Foundation Advancement of Free Software за IPython.
В августе 2013 года Microsoft сделала пожертвование в размере 100 000 долларов США на финансирование дальнейшей разработки IPython. [19]
В январе 2014 года он выиграл премию Jolt Productivity Award [20] от Dr. Dobb's в категории инструментов кодирования. В июле 2015 года проект выиграл финансирование в размере 6 миллионов долларов от Gordon and Betty Moore Foundation, Alfred P. Sloan Foundation и Leona M. and Harry B. Helmsley Charitable Trust. [21]
В мае 2018 года она была удостоена награды ACM Software System Award 2017. [22] Это самая большая команда, которая выиграла эту награду. [23]