В чем разница между 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.