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?

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.


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.


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ń.


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


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.


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.


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 %.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.