Qual é a diferença entre Python e IPython?

220

Qual é exatamente a diferença entre Python e IPython ?

Se eu escrever um código em Python, ele será executado no IPython como está ou precisa ser modificado?

Eu sei que o IPython deveria ser um shell interativo para Python, mas isso é tudo? Ou existe uma linguagem chamada IPython? Se eu escrever algo no IPython, ele será executado em Python e vice-versa? Se houver diferenças, como sei o que são? Todos os pacotes usados ​​pelo Python funcionarão como no IPython?

Asdfsdjlka Asdfsdjlka
fonte

Respostas:

153

ipython é um shell interativo criado com python.

No site do projeto:

O IPython fornece um kit de ferramentas completo para ajudá-lo a tirar o máximo proveito do uso do Python, com:

  • Poderosas conchas Python (baseadas em terminal e Qt).
  • Um notebook baseado na Web com os mesmos recursos principais, mas com suporte para código, texto, expressões matemáticas, plotagens embutidas e outras mídias avançadas.
  • Suporte para visualização interativa de dados e uso de kits de ferramentas da GUI.
  • Intérpretes flexíveis e incorporáveis ​​para carregar em seus próprios projetos.
  • Ferramentas fáceis de usar e de alto desempenho para computação paralela.

Observe que as duas primeiras linhas indicam que você ajuda a aproveitar ao máximo o uso do Python. Portanto, você não precisa alterar seu código, o shell IPython executa seu código python exatamente como o shell python normal, apenas com mais recursos.

Eu recomendo a leitura do tutorial do IPython para ter uma idéia dos recursos que você ganha ao usar o IPython.

Martijn Pieters
fonte
8
Thus, you don't need to alter your code, the IPython shell runs your python code just like the normal python shell doesObrigado. Isso é tudo o que eu precisava saber.
Asdfsdjlka Asdfsdjlka
Você pode comentar sobre a velocidade de execução do ipython vs python? Quero dizer ipython puro, não ipython notebook que envolveria um navegador.
Jason
2
@ Jason: é exatamente o mesmo ciclo de avaliação. Pode haver alguma sobrecarga na camada de apresentação (análise de comandos ipython, impressão bonita da saída da expressão), mas isso é um custo constante. Então, basicamente, muito, muito pouca diferença.
Martijn Pieters
19

IPython é basicamente o shell Python "recomendado", que fornece recursos extras. Não há linguagem chamada IPython.

Winnie Phan
fonte
IPython é apenas o REPL?
Sr. Suryaa Jha
@ Mr.SuryaaJha É um REPL, mas também existe apenas o REPL python padrão (o que você obtém quando digita pythonum shell).
precisa
16

Mesmo depois de visualizar esse encadeamento, pensei que ipython era sinônimo do shell python, em outras palavras, que digitar python na linha de comando colocava um no modo ipython.

De fato, como mencionado acima, um shell interativo muito legal (programa de linha de comando) que pode ser instalado no iPython.org ou simplesmente executando

pip install ipython

ou o mais extenso:

pip install ipython[notebook]

na linha de comando.

MikeiLL
fonte
1
Bom ponto, @Roadowl Acho que dizer "shell interativo" é um pouco redundante, não é?
MikeiLL
@Roadowl: (um ano depois, mas ainda assim ...) Que tal um shell executando um script de maneira não interativa? Talvez um exemplo simples: $ sh -c 'foobar=3.14159'... ou talvez eu tenha entendido errado o seu comentário.
Cbhihe
12

O IPython é um poderoso interpretador interativo de Python, mais interativo em comparação com o interpretador padrão.

Para obter o interpretador Python padrão, você digita python e você receberá o >>>prompt de onde poderá trabalhar.

Para obter o interpretador IPython, você precisa instalá-lo primeiro. pip install ipython. Você digita ipythone obtém In [1]:um prompt e obtém In [2]:o próximo comando. Você pode ligar historypara verificar a lista de comandos anteriores e escrever%recall 1 para recuperar o comando.

Mesmo em Python, você pode executar comandos do shell diretamente como !ping www.google.com . Parece um bloco de anotações Jupiter da linha de comando, se você já usou isso antes.

Você pode usar o [Tab]preenchimento automático conforme mostrado na imagem. insira a descrição da imagem aqui

prosti
fonte
6

Existem poucas diferenças entre Python e IPython, mas elas são apenas a interpretação de poucas sintaxes, como as mencionadas por @Ryan Chase, mas no fundo o verdadeiro sabor do Python é mantido mesmo no Ipython.

A melhor parte do IPython é o notebook IPython. Você pode colocar todo o seu trabalho em um bloco de anotações, como scripts, arquivos de imagem etc. Mas, com o Python base, você pode criar o script em um arquivo e executá-lo.

No início, você precisa entender que o IPython é desenvolvido com a intenção de oferecer suporte a rich media e scripts Python em um único contêiner integrado.

Abish
fonte
6

Comparado ao Python, o IPython (criado por Fernando Perez em 2001) pode fazer tudo o que o python pode fazer. O Ipython fornece ainda recursos extras, como preenchimento de guias, testes, depuração, chamadas do sistema e muitos outros recursos. Você pode pensar no IPython como uma interface poderosa para a linguagem Python.

Você pode instalar o Ipython usando pip -pip install ipython

Você pode executar o Ipython digitando ipythonna janela do seu terminal.

N Randhawa
fonte
2

Pela minha experiência, descobri que alguns comandos executados no IPython não são executados no Python base. Por exemplo, pwde lsnão trabalhe sozinho no Python base. No entanto, eles funcionarão se precedidos de um %tal como: %pwde%ls .

Além disso, no IPython, você pode executar o comando cd como: cd C:\Users\... Isso parece não funcionar no python base, mesmo quando precedido por um %no entanto.

Ryan Chase
fonte
3
import os; os.system('pwd')é a maneira que eu faço em Python.
Todos Іѕ Vаиітy
2
Todos os %comandos são comandos ipython e não funcionam em uma sessão interativa regular do Python. Isso inclui %pwde %ls. O %prefixo é opcional e só é necessário quando não houver conflito com um Python global na sua sessão atual.
Martijn Pieters