В чем разница между Python и IPython?


220

В чем именно разница между Python и IPython ?

Если я напишу код на Python, он будет работать в IPython как есть или его нужно будет изменить?

Я знаю, что IPython должен быть интерактивной оболочкой для Python, но это все? Или есть язык под названием IPython? Если я напишу что-нибудь под IPython, будет ли он работать на Python, и наоборот? Если есть различия, как я узнаю, что они есть? Будут ли все пакеты, используемые Python, работать как в IPython?

Ответы:


153

ipython это интерактивная оболочка, построенная на Python

С сайта проекта:

IPython предоставляет богатый инструментарий, который поможет вам максимально эффективно использовать Python, с:

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

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

Я рекомендую прочитать руководство по IPython, чтобы понять, какие функции вы получаете при использовании IPython.


8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesСпасибо. Это все, что мне нужно было знать.
— Asdfsdjlka Asdfsdjlka

Можете ли вы прокомментировать скорость выполнения ipython против python? Я имею в виду чистый ipython, а не ноутбук ipython, в котором бы использовался браузер.
— Джейсон

2
@ Джейсон: это точно такой же цикл оценки. На уровне представления могут быть некоторые издержки (разбор команд ipython, приятная печать вывода выражения), но это все постоянные затраты. Так что, в принципе, очень, очень маленькая разница.
— Мартин Питерс

19

IPython - это в основном «рекомендуемая» оболочка Python, которая предоставляет дополнительные функции. Там нет языка под названием IPython.


IPython - это просто REPL?
— г-н Сурия Джа

@ Mr.SuryaaJha Это REPL, но есть также стандартный REPL для Python (то, что вы получаете при вводе pythonв оболочке).
— BallpointBen

16

Даже после просмотра этой темы я думал, что ipython является синонимом оболочки python, иными словами, ввод python в командной строке переводит его в режим ipython.

На самом деле, как упоминалось выше, это очень крутая интерактивная оболочка (программа командной строки), которую можно установить с iPython.org или просто запустив

pip install ipython

или более обширный:

pip install ipython[notebook]

из командной строки.


1
Хороший вопрос, @Roadowl Я думаю, что говорить «интерактивная оболочка» немного избыточно, не правда ли.
— MikeiLL

@Roadowl: (год спустя, но все же ...) Как насчет любой оболочки, выполняющей сценарий неинтерактивным способом? Может быть, простой пример: $ sh -c 'foobar=3.14159'... или, может быть, я неправильно понял ваш комментарий.
— Cbhihe

12

IPython - это мощный интерактивный интерпретатор Python, который более интерактивен по сравнению со стандартным интерпретатором.

Чтобы получить стандартный интерпретатор Python, вы набираете, pythonи вы получите >>>подсказку, где вы можете работать.

Чтобы получить интерпретатор IPython, вам нужно сначала установить его. pip install ipython, Вы печатаете, ipythonи вы получаете In [1]:в качестве приглашения, и вы получаете In [2]:следующую команду. Вы можете позвонить, historyчтобы проверить список предыдущих команд, и написать, %recall 1чтобы отозвать команду.

Даже если вы находитесь в Python, вы можете запускать команды оболочки напрямую !ping www.google.com. Похоже на командную строку ноутбука Юпитера, если вы использовали это раньше.

Вы можете использовать [Tab]для автозаполнения, как показано на рисунке. введите описание изображения здесь


6

Между Python и IPython мало различий, но они представляют собой лишь интерпретацию немногих синтаксисов, подобных тем, которые были упомянуты @Ryan Chase, но глубоко внутри истинный вкус Python поддерживается даже в Ipython.

Лучшая часть IPython - это ноутбук IPython. Вы можете поместить всю свою работу в блокнот, например, скрипт, файлы изображений и т. Д. Но с базовым Python вы можете только сделать скрипт в файле и выполнить его.

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


6

По сравнению с Python, IPython (созданный Фернандо Пересом в 2001 году) может делать все, что может делать Python. Ipython предоставляет даже дополнительные функции, такие как завершение табуляции, тестирование, отладка, системные вызовы и многие другие функции. Вы можете считать IPython мощным интерфейсом к языку Python.

Вы можете установить Ipython с помощью pip -pip install ipython

Вы можете запустить Ipython , набрав ipythonв окне терминала.


2

По своему опыту я обнаружил, что некоторые команды, работающие в IPython, не работают в базовом Python. Например, pwdи lsне работать в одиночку в базовом Python. Однако они будут работать, если предваряются %такими как: %pwdи %ls.

Кроме того, в IPython вы можете запустить команду cd следующим образом: cd C:\Users\... Кажется, это не работает в базовом питоне, даже если перед ним стоит %однако.


3
import os; os.system('pwd')это способ, которым я делаю это в Python.
— Всех с нетерпением

2
Все %команды являются командами ipython и не работают в обычном интерактивном сеансе Python. Это включает в себя %pwdи %ls. %Префикс не является обязательным и требуется только , когда нет никакого конфликта с Python Global в текущем сеансе.
— Мартин Питерс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.