Jaka jest różnica między Python a IPython?

220

Jaka jest dokładnie różnica między Python a IPython ?

Jeśli piszę kod w Pythonie, czy będzie on działał w IPython w takiej formie, w jakiej jest, czy wymaga modyfikacji?

Wiem, że IPython ma być interaktywną powłoką dla Pythona, ale czy to wszystko? A może istnieje język o nazwie IPython? Jeśli napiszę coś pod IPython, czy będzie działać w Pythonie i na odwrót? Jeśli istnieją różnice, skąd mam wiedzieć, jakie są? Czy wszystkie pakiety używane przez Python będą działać tak jak w IPython?

Asdfsdjlka Asdfsdjlka
źródło

Odpowiedzi:

153

ipython jest interaktywną powłoką zbudowaną z Pythona.

Ze strony internetowej projektu:

IPython zapewnia bogaty zestaw narzędzi, który pomoże Ci w pełni wykorzystać Python, z:

  • Potężne powłoki Pythona (oparte na terminalach i Qt).
  • Internetowy notatnik z tymi samymi podstawowymi funkcjami, ale obsługą kodu, tekstu, wyrażeń matematycznych, wykresów wbudowanych i innych multimediów.
  • Obsługa interaktywnej wizualizacji danych i korzystanie z zestawów narzędzi GUI.
  • Elastyczne, wbudowane interpretery do wczytywania do własnych projektów.
  • Łatwe w użyciu, wysokowydajne narzędzia do obliczeń równoległych.

Zauważ, że pierwsze 2 linie mówią, że to pomaga w pełni wykorzystać Python. W związku z tym nie trzeba zmieniać kodu, powłoka IPython uruchamia kod Pythona tak jak normalna powłoka Pythona, tylko z większą liczbą funkcji.

Polecam przeczytać samouczek IPython, aby dowiedzieć się, jakie funkcje zyskujesz podczas korzystania z IPython.

Martijn Pieters
źródło
8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesDzięki. To wszystko, co musiałem wiedzieć.
Asdfsdjlka Asdfsdjlka
Czy możesz podać jakieś uwagi na temat prędkości wykonania ipython vs python? Mam na myśli czysty ipython, a nie ipython notebook, który wymagałby przeglądarki.
Jason
2
@Jason: to dokładnie ta sama pętla oceny. W warstwie prezentacji może występować pewien narzut (parsowanie poleceń ipython, ładne drukowanie wyniku wyrażenia), ale to wszystko kosztuje cały czas. Zasadniczo bardzo, bardzo mała różnica.
Martijn Pieters
19

IPython jest w zasadzie „zalecaną” powłoką Pythona, która zapewnia dodatkowe funkcje. Nie ma języka o nazwie IPython.

Kubuś Phan
źródło
Czy IPython to tylko REPL?
Pan Suryaa Jha
@ Mr.SuryaaJha To jest REPL, ale jest też tylko standardowa REPL pythonowa (to, co dostajesz po wpisaniu pythonpowłoki).
BallpointBen
16

Nawet po przejrzeniu tego wątku pomyślałem, że ipython jest synonimem powłoki python, innymi słowy, że wpisanie python w wierszu poleceń przełączyło go w tryb ipython.

W rzeczywistości jest to, jak wspomniano powyżej, bardzo fajna interaktywna powłoka (program wiersza poleceń), którą można zainstalować z iPython.org lub po prostu uruchamiając

pip install ipython

lub bardziej rozbudowany:

pip install ipython[notebook]

z linii poleceń.

MikeiLL
źródło
1
Dobra uwaga, @Roadowl Myślę, że powiedzenie „interaktywna powłoka” jest trochę zbędne, prawda?
MikeiLL
@Roadowl: (rok później, ale nadal ...) Co powiesz na jakąkolwiek powłokę uruchamiającą skrypt w sposób nieinteraktywny? Może prosty przykład: $ sh -c 'foobar=3.14159'... a może źle zrozumiałem twój komentarz.
Cbhihe
12

IPython to potężny interaktywny interpreter języka Python, który jest bardziej interaktywny w porównaniu do standardowego interpretera.

Aby uzyskać standardowy interpreter Pythona, wpisz pythoni otrzymasz >>>monit z miejsca, w którym możesz pracować.

Aby uzyskać interpreter IPython, musisz go najpierw zainstalować. pip install ipython. Wpisujesz ipythoni dostajesz In [1]:jako monit i dostajesz In [2]:do następnego polecenia. Możesz zadzwonić, historyaby sprawdzić listę poprzednich poleceń, i napisać, %recall 1aby przywołać polecenie.

Nawet w Pythonie możesz uruchamiać polecenia powłoki bezpośrednio jak !ping www.google.com. Wygląda jak notatnik Jowisza z linii poleceń, jeśli wcześniej go używałeś.

Możesz użyć [Tab]do autouzupełniania, jak pokazano na obrazku. wprowadź opis zdjęcia tutaj

prosti
źródło
6

Istnieje kilka różnic między Pythonem i IPython, ale są one tylko interpretacją kilku składni, takich jak te wspomniane przez @Ryan Chase, ale głęboki smak prawdziwego Pythona jest zachowany nawet w Ipython.

Najlepszą częścią IPython jest notebook IPython. Możesz umieścić całą swoją pracę w notatniku, takim jak skrypt, pliki obrazów itp. Jednak w podstawowym języku Python możesz wykonać skrypt tylko w pliku i go wykonać.

Na początku musisz zrozumieć, że IPython został opracowany z myślą o obsłudze multimediów i skryptu Python w jednym zintegrowanym kontenerze.

Abisz
źródło
6

W porównaniu do Pythona, IPython (stworzony przez Fernando Pereza w 2001 roku) może zrobić wszystko, co potrafi Python. Ipython zapewnia nawet dodatkowe funkcje, takie jak uzupełnianie tabulatorów, testowanie, debugowanie, wywołania systemowe i wiele innych funkcji. Możesz myśleć, że IPython jest potężnym interfejsem do języka Python.

Możesz zainstalować Ipython za pomocą pip -pip install ipython

Możesz uruchomić Ipython , pisząc ipythonw oknie terminala.

N Randhawa
źródło
2

Z mojego doświadczenia wynika, że ​​niektóre polecenia działające w IPython nie działają w podstawowym języku Python. Na przykład pwdi lsnie pracuj sam w podstawowym języku Python. Będą jednak działać, jeśli zostaną poprzedzone %takimi, jak: %pwdi%ls .

Ponadto w IPython możesz uruchomić komendę cd w następujący sposób: cd C:\Users\... Wydaje się, że nie działa to w podstawowym pythonie, nawet jeśli poprzedza go komenda %.

Ryan Chase
źródło
3
import os; os.system('pwd') to sposób, w jaki to robię w Pythonie.
Wszystkie są
2
Wszystkie %polecenia są poleceniami ipython i nie działają w zwykłej interaktywnej sesji Pythona. Obejmuje to %pwdi %ls. %Prefix jest opcjonalny i wymaga tylko gdy nie ma konfliktu z Pythona globalnej w bieżącej sesji.
Martijn Pieters