IPython - IPython

IPython
IPython Logo.png
Снимок экрана IPython 6.x в Mac OS, показывающий вычисление преобразования Фурри с использованием numpy.
Оболочка IPython
Оригинальный автор (ы)Фернандо Перес[1]
Разработчики)Брайан Э. Грейнджер, Мин Раган-Келли, Пол Иванов, Томас Клюйвер, Матиас Бюссонье
изначальный выпуск2001; 19 лет назад (2001)[1]
Стабильный выпуск
7.19.0 / 31 октября 2020 г.; 26 дней назад (2020-10-31)[2]
Репозиторий Отредактируйте это в Викиданных
Написано вPython, JavaScript, CSS, HTML
Операционная системаКроссплатформенность
ТипРакушка
ЛицензияBSD
Интернет сайтipython.org Отредактируйте это в Викиданных

IPython (Интерактивный Python) - это командная оболочка для интерактивных вычислений на нескольких языках программирования, первоначально разработанных для Язык программирования Python, который предлагает самоанализ, мультимедиа, синтаксис оболочки, завершение табуляции, и история. IPython предоставляет следующие возможности:

  • Интерактивные оболочки (терминал и Qt -основан).
  • Браузерная интерфейс ноутбука с поддержкой кода, текста, математических выражений, встроенных графиков и других носителей.
  • Поддержка интерактивной визуализации данных и использования наборов инструментов GUI.
  • Гибкие, встраиваемые переводчики для загрузки в собственные проекты.
  • Инструменты для параллельные вычисления.

Параллельные вычисления

Архитектурный вид параллельной машины IPython

IPython основан на архитектуре, обеспечивающей параллельные и распределенные вычисления. IPython позволяет разрабатывать, запускать, отлаживать и отслеживать параллельные приложения в интерактивном режиме, отсюда и I (Interactive) в IPython.[3] Эта архитектура абстрагируется от параллелизма, позволяя IPython поддерживать множество различных стилей параллелизма.[4] включая:

  • Одна программа, несколько данных (СПМД ) параллелизм
  • Несколько программ, несколько данных (MPMD ) параллелизм
  • Передача сообщений с использованием MPI
  • Параллелизм задач
  • Параллелизм данных
  • Комбинации этих подходов
  • Индивидуальные пользовательские подходы

С выпуском IPython 4.0 возможности параллельных вычислений стали необязательными и выпущены под ipyparallel пакет python. И большая часть возможностей ipyparallel теперь покрыта более зрелыми библиотеками, такими как Даск.

IPython часто использует стек SciPy[5] библиотеки вроде NumPy и SciPy, часто устанавливается вместе с одним из многих дистрибутивов Scientific Python.[5] IPython обеспечивает интеграцию с некоторыми библиотеками SciPy стек, особенно matplotlib, создавая встроенные графики при использовании с ноутбуком Jupyter. Библиотеки Python могут реализовывать специфические перехватчики IPython для настройки отображения расширенных объектов. SymPy например, реализует рендеринг математических выражений как рендеринг Латекс при использовании в контексте IPython и Панды dataframe использует представление HTML.[6]

Другие свойства

IPython позволяет неблокирующее взаимодействие с Ткинтер, PyGTK, PyQt /PySide и wxPython (стандартная оболочка Python позволяет взаимодействовать только с Tkinter). IPython может интерактивно управлять параллельным вычислительные кластеры использование асинхронных обратных вызовов статуса и / или MPI. IPython также можно использовать в качестве замены системной оболочки.[7] Его поведение по умолчанию во многом похоже на Оболочки Unix, но он позволяет настраивать и гибко выполнять код в живой среде Python. Использование IPython в качестве замены оболочки менее распространено, и теперь рекомендуется использовать Xonsh, который обеспечивает большую часть функций IPython с лучшей интеграцией оболочки.

Окончание поддержки Python 2

Серия IPython 5.x (длительная поддержка) - это последняя версия IPython, поддерживающая Python 2. Проект IPython обещал не поддерживать Python 2 после 2020 года.[8] будучи одним из первых проектов, присоединившихся к Заявление Python 3, серия 6.x совместима только с Python 3 и выше. Тем не менее, все еще возможно запускать ядро ​​IPython и сервер Jupyter Notebook на разных версиях Python, что позволяет пользователям по-прежнему получать доступ к Python 2 в более новой версии Jupyter.

Проект Jupyter

Старый интерфейс ноутбука IPython

В 2014, Фернандо Перес объявил о дополнительном проекте IPython под названием Проект Jupyter.[9] IPython продолжал существовать как оболочка Python и ядро ​​для Jupyter, но ноутбук интерфейс и другие не зависящие от языка части IPython были перемещены под именем Jupyter.[10][11] Jupyter не зависит от языка, и его название является ссылкой на основные языки программирования, поддерживаемые Jupyter, которые Юля, Python, и р.[12]

Юпитер Ноутбук (ранее IPython Notebooks) - это веб-интерактивный вычислительная среда для создания, выполнения и визуализации записных книжек Jupyter. Он похож на интерфейс ноутбука других программ, таких как Клен, Mathematica, и SageMath, стиль вычислительного интерфейса, зародившийся в системе Mathematica в 1980-х годах.[13] Он поддерживает среды выполнения (также известные как ядра) на десятках языков. По умолчанию Jupyter Notebook поставляется с ядром IPython, но по состоянию на май 2018 года существует более 100 ядер Jupyter.

В прессе

IPython упоминается в популярной компьютерной прессе и других популярных СМИ,[14][13] и он присутствует на научных конференциях.[15] В научной и инженерной работе он часто используется как вспомогательный инструмент для matplotlib.[16]

Гранты и награды

С 1 января 2013 г. Фонд Альфреда П. Слоана объявил, что будет поддерживать разработку IPython в течение двух лет.[17]

23 марта 2013 г. Фернандо Перес был награжден Free Software Foundation Премия за продвижение бесплатного программного обеспечения для IPython.

В августе 2013 г. Microsoft сделал пожертвование в размере 100 000 долларов США на дальнейшее развитие IPython.[18]

В январе 2014 года он выиграл Награда Jolt Productivity[19] из Доктора Добба в категории инструментов кодирования. В июле 2015 года проект получил финансирование в размере 6 миллионов долларов от Фонда Гордона и Бетти Мур, Фонда Альфреда П. Слоана и Благотворительного фонда Леоны М. и Гарри Б. Хелмсли.[20]

В мае 2018 года он был удостоен награды ACM Software System Award 2017.[21] Это самая большая команда, получившая награду.[22]

Смотрите также

Рекомендации

  1. ^ а б «Ноутбук IPython: историческая ретроспектива». Блог Фернандо Переса. 8 января 2012 г.
  2. ^ "История выпусков ipython". Индекс пакета Python. Получено 5 ноября 2020.
  3. ^ Хелен, Шен (2014). «Интерактивные записные книжки: обмен кодом». Природа. 515 (7525): 151–152. Дои:10.1038 / 515151a. PMID  25373681.
  4. ^ «Использование IPython для параллельных вычислений - документы IPython».
  5. ^ а б "SciPy Stack".
  6. ^ «Печать - документация SymPy 1.1». docs.sympy.org. Получено 11 апреля 2018.
  7. ^ Маккинни, Уэс (2012). "Глава 3". Python для анализа данных. ISBN  978-1-449-31979-3.
  8. ^ «Релиз IPython 5.0 - блог Jupyter». Блог Jupyter. 8 июля 2016 г.. Получено 11 апреля 2018.
  9. ^ "Проект Jupyter // Колонка".
  10. ^ «Блокнот, консоль Qt и ряд других частей теперь являются частью Jupyter».
  11. ^ "Большой раскол ™".
  12. ^ https://github.com/jupyter/design/wiki/Jupyter-Logo
  13. ^ а б Сомерс, Джеймс. «Научная статья устарела». Атлантический океан. Получено 10 апреля 2018.
  14. ^ Козиол, Конрад (12 сентября 2005 г.). «Представляем IPython». NewsForge.
  15. ^ «Презентации IPython».
  16. ^ Перес, Фернандо; Грейнджер, Брайан Э. (2007). «IPython: система интерактивных научных вычислений» (PDF). Вычислительная техника в науке и технике. 9 (3): 21–29. Дои:10.1109 / MCSE.2007.53. Архивировано из оригинал (PDF) 2 июня 2010 г.. Получено 30 июля 2015.
  17. ^ "Объявление в списке рассылки scipy".
  18. ^ "Объявление IPython".
  19. ^ "Обзор премии Jolt Productivity Award в Докторе Доббе".
  20. ^ «6 миллионов долларов для Калифорнийского университета в Беркли и Cal Poly на расширение и улучшение программного обеспечения с открытым исходным кодом для научных вычислений и науки о данных». Получено 13 августа 2015.
  21. ^ "Последние новости о награде за программные системы".
  22. ^ «Jupyter получает награду ACM Software System Award».

внешняя ссылка