IPython - IPython
Оригинальный автор (ы) | Фернандо Перес |
---|---|
Разработчики) | Брайан Э. Грейнджер, Мин Рэган-Келли, Пол Иванов, Томас Клюйвер, Матиас Бюссонье |
Первый выпуск | 2001 |
Стабильный выпуск | |
Репозиторий | |
Написано в | Python , JavaScript , CSS , HTML |
Операционная система | Кроссплатформенность |
Тип | Оболочка |
Лицензия | BSD |
Веб-сайт |
IPython |
IPython (интерактивный Python) - это командная оболочка для интерактивных вычислений на нескольких языках программирования, изначально разработанная для языка программирования Python , которая предлагает интроспекцию , мультимедийные возможности , синтаксис оболочки, завершение табуляции и историю. IPython предоставляет следующие возможности:
- Интерактивные оболочки (терминальные и на основе Qt ).
- Интерфейс записной книжки на основе браузера с поддержкой кода, текста, математических выражений, встроенных графиков и других носителей.
- Поддержка интерактивной визуализации данных и использования наборов инструментов GUI.
- Гибкие, встраиваемые переводчики для загрузки в собственные проекты.
- Инструменты для параллельных вычислений .
Параллельные вычисления
IPython основан на архитектуре, обеспечивающей параллельные и распределенные вычисления. IPython позволяет разрабатывать, выполнять, отлаживать и отслеживать параллельные приложения в интерактивном режиме, отсюда и I (Interactive) в IPython. Эта архитектура абстрагируется от параллелизма, позволяя IPython поддерживать множество различных стилей параллелизма, включая:
- Однопрограммный параллелизм с множеством данных ( SPMD )
- Параллелизм с несколькими программами и несколькими данными ( MPMD )
- Передача сообщений с использованием MPI
- Параллелизм задач
- Параллелизм данных
- Комбинации этих подходов
- Индивидуальные подходы, определяемые пользователем
С выпуском IPython 4.0 возможности параллельных вычислений стали необязательными и выпущены в составе пакета ipyparallel python. И большая часть возможностей ipyparallel теперь покрыта более зрелыми библиотеками, такими как Dask .
IPython часто использует библиотеки стека SciPy, такие как NumPy и SciPy , которые часто устанавливаются вместе с одним из многих дистрибутивов Scientific Python. IPython обеспечивает интеграцию с некоторыми библиотеками стека SciPy , в частности с matplotlib , создавая встроенные графики при использовании с записной книжкой Jupyter. Библиотеки Python могут реализовать специфические перехватчики IPython для настройки отображения расширенных объектов. SymPy, например, реализует рендеринг математических выражений в виде рендеринга LaTeX при использовании в контексте IPython, а фрейм данных Pandas использует представление HTML.
Другие особенности
IPython допускает неблокирующее взаимодействие с Tkinter , PyGTK , PyQt / PySide и wxPython (стандартная оболочка Python допускает взаимодействие только с Tkinter). IPython может интерактивно управлять кластерами параллельных вычислений, используя асинхронные обратные вызовы состояния и / или MPI . IPython также можно использовать в качестве замены системной оболочки. Его поведение по умолчанию во многом похоже на оболочки Unix , но позволяет настраивать и гибко выполнять код в живой среде Python.
Окончание поддержки Python 2
Серия IPython 5.x (длительная поддержка) - это последняя версия IPython, поддерживающая Python 2. Проект IPython обещал не поддерживать Python 2 после 2020 года, став одним из первых проектов, присоединившихся к заявлению Python 3 , 6.x серия совместима только с Python 3 и выше. Тем не менее, по-прежнему возможно запускать ядро IPython и сервер Jupyter Notebook на разных версиях Python, что позволяет пользователям по-прежнему получать доступ к Python 2 в более новой версии Jupyter.
Проект Jupyter
В 2014 году Фернандо Перес объявил о дополнительном проекте IPython под названием Project Jupyter . IPython продолжал существовать как оболочка Python и ядро для Jupyter, но интерфейс ноутбука и другие не зависящие от языка части IPython были перемещены под именем Jupyter. Jupyter является язык агностик , и его название является ссылкой на основных языках программирования , поддерживаемых Jupyter, которые Юлю , Python и R .
Jupyter Notebook (ранее IPython Notebooks) - это интерактивная вычислительная среда на базе Интернета для создания, выполнения и визуализации записных книжек Jupyter. Он похож на интерфейс записной книжки других программ, таких как Maple , Mathematica и SageMath , стиль вычислительного интерфейса, появившийся в системе Mathematica в 1980-х годах. Он поддерживает среды выполнения (также известные как ядра) на десятках языков. По умолчанию Jupyter Notebook поставляется с ядром IPython, но по состоянию на май 2018 года существует более 100 ядер Jupyter.
В прессе
IPython упоминается в популярной компьютерной прессе и других популярных СМИ, а также присутствует на научных конференциях. Для научных и инженерных работ он часто используется как вспомогательный инструмент для matplotlib .
Гранты и награды
С 1 января 2013 года Фонд Альфреда П. Слоана объявил, что будет поддерживать разработку IPython в течение двух лет.
23 марта 2013 года Фернандо Перес был удостоен награды Фонда свободного программного обеспечения за продвижение бесплатного программного обеспечения для IPython.
В августе 2013 года Microsoft сделала пожертвование в размере 100 000 долларов США на дальнейшее развитие IPython.
В январе 2014 года он получил награду Jolt Productivity Award от доктора Добба в категории инструментов для программирования. В июле 2015 года проект получил финансирование в размере 6 миллионов долларов от Фонда Гордона и Бетти Мур, Фонда Альфреда П. Слоана и Благотворительного фонда Леоны М. и Гарри Б. Хелмсли.
В мае 2018 года он был удостоен награды ACM Software System Award 2017. Это самая большая команда, получившая награду.