Перейти к содержимому

Ipython что это

  • автор:

Использование IPython

IPython — это интерактивная оболочка для языка программирования Python которая предоставляет расширенную интроспекцию, дополнительный командный синтаксис, подсветку кода и автодополнение. Является компонентом пакета программ SciPy. Лицензия BSD.

IPython – это интерактивная оболочка для с широким набором возможностей и ядро для Jupyter. Jupyter notebook является графической веб-оболочкой для IPython, которая расширяет идею консольного подхода к интерактивным вычислениям.

IPython позволяет осуществлять non-blocking взаимодействие с Tkinter, GTK, Библиотека Qt and WX. Стандартная оболочка Python позволяет взаимодействие только с Tkinter. IPython может интерактивно управлять параллельными кластерами используя асинхронные статусы обратных вызовов и/или MPI. IPython может использоваться как замена стандартной командной оболочки операционной системы, особенно на платформе Windows, возможности оболочки которой ограничены. Поведение по умолчанию похоже на поведение оболочек UNIX подобных систем, но тот факт что работа происходит в окружении Python позволяет добиваться большей настраиваимости и гибкости.

Настройка IPython

Глобальные настройки IPython находятся в домашней директории пользователя (от имени которого запускается IPython) в файле ~/.ipython/ipythonrc . Чтобы каждый раз после входа в оболочку не заниматься её настройками под свои предпочтения, IPython поддерживает профили. Параметры профилей хранятся в каталоге .ipython в файлах ipythonrc-. Здесь можно задать вид приглашения командной строки, псевдонимы и прочие параметры. Запуск оболочки с поддержкой соответствующего профиля выполняется командой «ipython -p . Встроенный профиль sh (команда запуска ipython -p sh) запускает IPython с более удобным приглашением (отображающим текущий каталог), автоматически выполнит функцию %rehashx, активирует расширение envpersist (которое сохраняет изменения переменных окружения между сессиями).

Функции IPython

lsmagic — выводит список «магических команд» IPython

In [5]: lsmagic Available magic functions: %Exit %Pprint %Quit %alias %autocall %autoindent %automagic %bg %bookmark %cd %clear %color_info %colors %cpaste %debug %dhist %dirs %doctest_mode %ed %edit %env %exit %hist %history %logoff %logon %logstart %logstate %logstop %lsmagic %macro %magic %p %page %pdb %pdef %pdoc %pfile %pinfo %popd %profile %prun %psearch %psource %pushd %pwd %pycat %quickref %quit %r %rehash %rehashx %rep %reset %run %runlog %save %sc %store %sx %system_verbose %time %timeit %unalias %upgrade %who %who_ls %whos %xmode Automagic is ON, % prefix NOT needed for magic functions.

dhist (аналог shell команды history). Выводит список посещенных директорий. Чтобы перейти в каталог из списка в строке 2 нужно выполнить команду cd -2

In [15]: dhist Directory history (kept in _dh) 0: /var/log 1: /var/log 2: /etc/apache2 3: /var/log In [16]: cd -2 /etc/apache2

bookmark — создает «закладки» на часто посещаемые каталоги.

In [17]: bookmark vlog /var/log In [18]: cd -b vlog (bookmark:vlog) -> /var/log /var/log

функции логирования

logstate - проверяет текущее состояние логирования In [23]: logstate Logging has not been activated. logstart - Включает логирование. Лог сохраняется в текущей директории как исходный код Python. In [3]: logstart Activating auto-logging. Current session state plus future input saved. Filename : ipython_log.py Mode : rotate Output logging : False Raw input log : False Timestamping : False State : active

IPython – Введение

Project Jupyter – это набор программных продуктов, используемых в интерактивных вычислениях. IPython был первоначально разработан Фернандо Пересом в 2001 году как расширенный интерпретатор Python. В 2011 году был представлен веб-интерфейс для терминала IPython в виде записной книжки IPython. В 2014 году Project Jupyter был запущен как дополнительный проект от IPython.

Пакеты по проекту Jupyter включают в себя –

  • Блокнот Jupyter – веб-интерфейс для программирования Python, Julia, R и многих других
  • QtConsole – Терминал на основе Qt для ядер Jupyter, аналогичный IPython
  • nbviewer – средство для обмена записными книжками Jupyter
  • JupyterLab – современный веб-интегрированный интерфейс для всех продуктов.

Блокнот Jupyter – веб-интерфейс для программирования Python, Julia, R и многих других

QtConsole – Терминал на основе Qt для ядер Jupyter, аналогичный IPython

nbviewer – средство для обмена записными книжками Jupyter

JupyterLab – современный веб-интегрированный интерфейс для всех продуктов.

Стандартный дистрибутив Python поставляется со средой REPL (Read-Evaluate-Print Loop) в форме оболочки Python с приглашением >>> . IPython (расшифровывается как Interactive Python) представляет собой расширенную интерактивную среду для Python со многими функциональными возможностями по сравнению со стандартной оболочкой Python.

Особенности IPython

IPython предлагает больше возможностей по сравнению со стандартным Python. Они заключаются в следующем –

  • Предлагает мощную интерактивную оболочку Python.
  • Выступает в качестве основного ядра для ноутбука Jupyter и других инструментов интерфейса Project Jupyter.
  • Обладает способностью самоанализа объекта. Самоанализ – это способность проверять свойства объекта во время выполнения.
  • Подсветка синтаксиса.
  • Хранит историю взаимодействий.
  • Заполнение вкладок ключевых слов, переменных и имен функций.
  • Магическая система команд полезна для управления средой Python и выполнения задач ОС.
  • Возможность встраивания в другие программы Python.
  • Предоставляет доступ к отладчику Python.

Предлагает мощную интерактивную оболочку Python.

Выступает в качестве основного ядра для ноутбука Jupyter и других инструментов интерфейса Project Jupyter.

Обладает способностью самоанализа объекта. Самоанализ – это способность проверять свойства объекта во время выполнения.

Хранит историю взаимодействий.

Заполнение вкладок ключевых слов, переменных и имен функций.

Магическая система команд полезна для управления средой Python и выполнения задач ОС.

Возможность встраивания в другие программы Python.

Предоставляет доступ к отладчику Python.

История и развитие

Первоначально IPython был разработан Фернандо Пересом в 2001 году. Текущая версия IPython7.0.1, для которой требуется версия Python 3.4 или выше. IPython 6.0 был первой версией, поддерживающей Python 3. Пользователи, имеющие Python 2.7, должны работать с версиями IPython 2.0 до 5.7.

Концепция вычислительных ноутбуков началась в 80-х годах, когда были выпущены MATLAB и Mathematica. Эти интерфейсы GUI для интерактивной оболочки имели такие функции, как форматирование текста, добавление графики, таблицы и добавление математических символов. Sage notebook – это веб-блокнот.

Создатели IPython начали работать над интерфейсом ноутбука для оболочки IPython в 2005 году. В ноутбуке IPython вскоре добавилась поддержка других языков, таких как R и Julia. В 2014 году Перес запустил проект Jupyter как побочный проект от IPython, поскольку проект IPython становился все более масштабным с такими продуктами, как сервер ноутбуков и консоль Qt.

Начиная с IPython 4.0, все дополнительные компоненты были перенесены в Project Jupyter и добавлена ​​поддержка других языков в блокнот IPython. IPython продолжает фокусироваться на улучшении своей расширенной функции интерпретатора. Он также предоставляет основное ядро ​​для интерфейса ноутбука Jupyter.

IPython

[править] IPython в качестве системной оболочки

IPython можно использовать в качестве системной оболочки.

Для этого нужно сделать вызов с соответствующим профилем:

%$ ipython -p sh

В оболочке доступна гремучая смесь из языка python, расширений ipython и команд Unix.

Если к этому прикрутить ещё и ipipe, то получится шелл с возможностью передачи через каналы не потока текста, а потока объектов (ну прямо PowerShell да и только!).

  • IPython as a system shell (англ.)

[править] Вызов IPython из кода программы

Чтобы войти в сердце программы на питоне и посмотреть, что там делается, вы можете использовать ipython:

В том месте, куда вы хотите попасть:

(для новых версий IPython)

from IPython import embed embed()

(для более старых версий)

from IPython.Shell import IPShellEmbed ipshell = IPShellEmbed([]) ipshell()

Будет видно то пространство имён, в котором происходит вызов ipython (embed() или ipshell()).

Можно оформить вызов в виде функции, но тогда нужно не забыть передать в функцию локальные переменные:

def ipython(*kvargs, **kwargs): import inspect for (k,v) in kwargs.items(): inspect.stack()[0][0].f_locals[k] = v from IPython import embed embed()

Ну и потом, когда нужно передать переменные:

ipython(**locals())

Для удалённого подключения:

$ ipython kernel &
$ ipython console .

Ещё интересные материалы по теме:

  • Exploring the Gdb Python API with IPython (англ.)
  • Connecting to a remote iPython instance

[править] IPython Notebook

[править] Интеграция с JavaScript

Полноценной интеграции пока нет, она запланирована на IPython 2.0, но что уже сейчас можно делать, это:

var kernel = IPython.notebook.kernel; kernel.execute(command);

В результате команда command выполнится на ядре IPython.

Этого достаточно чтобы передавать данные из браузера в ядро; для обратной передачи используется коллбек в kernel.execute:

var kernel = IPython.notebook.kernel; function callback(out_type, out_data) < // do_something >kernel.execute(command, );

Подробнее об этом:

[править] Вопросы и ответы

[править] Как скроллить большой вывод в ipython?

Полностью ipython это пока не умеет. Просмотреть содержимое объекта можно так:

: %page object

Но вывод, например, функции или конструкции так не просмотришь (пока что [1] ). Нужно сначала её вызвать, а потом просмотреть результат:

[]: function_a() []: %page _

Другой вариант — использовать GNU Screen или что-нибудь подобное.

[править] Дополнительная информация

  • Домашняя страница IPython (англ.)
  • Документация по IPython (англ.)
  • IPython User Manual (англ.)
  • Introducing IPython (англ.)
  • Enhanced Interactive Python with IPython (англ.)
  • ipython qucki sheet (англ.)
  • http://ipython.scipy.org/moin/Documentation (англ.)
  • IPython: a system for Interactive Scientific Computing (англ.) — ещё про iPython

[править] Примечания

IPython

IPython — это интерактивный терминал или оболочка для языка программирования Python, который предоставляет такие функции, как самоанализ , дополнительный синтаксис, завершение и богатую историю.

В 2014 году сообщество разработчиков решило разделить проект на два:

  • часть, относящаяся к языку Python, остается в проекте IPython;
  • независимая от языка часть входит в новый проект с именем Jupyter (для Julia , Python , R ).

Версия 3.0 — это последняя «монолитная» версия IPython .

Резюме

  • 1 блокнот
  • 2 Другие особенности
  • 3 В СМИ
  • 4 Гранты и награды
  • 5 ссылки
  • 6 Статьи по теме
  • 7 Внешние ссылки

Ноутбук

Начиная с версии 0.12 IPython предоставляет новый многофункциональный веб-интерфейс : Notebook . Блокнот состоит из двух частей: формата на основе JSON для обмена исходными текстами Python и их ответов в расширенном форматировании и веб-интерфейса, аналогичного тому, который предлагается в Maple или Mathematica , цель которого — предоставить пользователям чистый и доступный интерфейс не разработчики.

Другие особенности

IPython допускает неблокирующее взаимодействие с Tkinter , GTK + , Qt и wxWidgets (терминал Python по умолчанию разрешает взаимодействие только с Tkinter ). Кроме того, IPython позволяет интерактивно управлять кластерами серверов с помощью асинхронного обратного вызова и / или функций MPI . IPython также можно использовать в качестве альтернативного системного терминала. Его поведение по умолчанию хорошо знакомо оболочкам Unix , но оно позволяет настраивать и гибко выполнять код в живой среде разработки Python.

В прессе

IPython упоминался в англоязычной компьютерной прессе и был представлен на различных научных конференциях. Для инженерии и науки он часто присутствует параллельно с Matplotlib .

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

С начала 2013 года в течение двух лет Фонд Альфреда П. Слоана субсидировал разработку IPython.

В Март 2013 г. Проект был отмечен премией Free Software Development Award от Фонда свободного программного обеспечения для своего создателя.

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

  1. ↑« http://www.nature.com/naturejobs/science/articles/10.1038/nj7493-523a »
  2. ↑« https://pypi.org/project/ipython/#history »
  3. ↑« Project Jupyter » на jupyter.org (по состоянию на 5 октября 2020 г. ) .
  4. ↑Объявление о ноутбуке — примечание к выпуску 0.12
  5. ↑ (in) Конрад Козиол, « Представляем IPython » , NewsForge, 12 сентября 2005 г.
  6. ↑- Презентации IPython
  7. ↑IPython: система интерактивных научных вычислений
  8. ↑ (in) « Объявление в списке рассылки Scipy » ( Архив • Wikiwix • Archive.is • Google • Что делать? ) (Последнее посещение-9 апреля 2013 г.)

Статьи по Теме

Внешние ссылки

  • (ru) Официальный сайт
  • (ru) Поваренная книга IPython
  • (ru) Джереми Джонс, « Улучшенный интерактивный Python с IPython » , ONLamp.com , 27 января 2005 г. ( читать онлайн )
  • (in) презентации IPython на научных конференциях перечислены на официальном сайте .
  • (ru) Введение в IPython на showmedo
  • (ru) Хелен Шен, «Интерактивные записные книжки: делимся кодом», Nature , 515, 151–152, 6ноября2014 г. , DOI : 10.1038 / 515151a

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *