O iPython não é somente mais um shell Python. Apesar de servir muito bem como um simples substituto ao shell Python padrão, existe tanta coisa por trás desse projeto que é, no mínimo, injusto caracterizá-lo apenas como uma alternativa ao shell Python padrão. Além dos esperados recursos como completação de nomes de módulos/funções, o iPython fornece um rico conjunto de funcionalidades que o tornam um ambiente de desenvolvimento e experimentação único. Vou listar algumas das funcionalidades disponíveis:
- Execução de comandos de sistema:com uma sintaxe mais simples que uma chamada a os.system(), é possível a execução de comandos no sistema. Basta preceder o comando com o caractere de exclamação(!).
- Exemplo: !ls -l
- Redirecionamento de saída de comandos:é possível armazenar em uma lista o resultado da execução de um comando do sistema. Para isso, basta uma atribuição simples.
- Exemplo: arquivos = !ls
- Funções avançadas de histórico: atalhos específicos para execução de comandos anteriormente executados.
- Criação de aliases (apelidos) para comandos.
- Autoindentação: ativada por padrão, é também possível desativá-la.
- Execução de programas Python:com apenas um comando, é possível executar um arquivo Python dentro do iPython.
- Exemplo: %run arquivo.py
- Avaliar tempo de execução de comandos:com um simples comando, é possível “medir” o tempo de execução de trechos de código Python.
- Ex.: %timeit print “Hello, world!” Muitas das funcionalidades aqui apresentadas não são novidade, pois podem ser obtidas através da utilização de módulos, como o timeit, no caso dessa funcionalidade. O interessante é a praticidade para utilização desses recursos dentro do iPython.
- Console gráfico (qt): o iPython oferece um console que pode, por exemplo, apresentar imagens inline no texto do console. Assim, é possível plotar gráficos direto no shell.
- Computação paralela: o iPython é muito utilizado para computação científica, onde é necessária a realização de tarefas que, muitas vezes, se tornam inviáveis em apenas uma máquina isolada. Para isso, a arquitetura do iPython já foi projetada visando dar suporte a execução paralela de comandos. Veja mais em: http://minrk.github.com/scipy-tutorial-2011/parallel_intro.html
- Interface Web: também é possível acessar um ambiente iPython através de uma interface web.
- E muito mais: para descobrir, execute o iPython e digite %quickref para ler a referência.
Na minha opinião, esse é um ambiente feito especialmente para quem passa o dia inteiro imerso em um shell Python e precisa de uma solução mais completa para facilitar o seu dia-a-dia. Excelente para a experimentação típica de quem trabalha com pesquisa científica, também pode ser muito bem aproveitado por programadores Python que desejam um shell mais completo. Recomendo!

Você precisa fazer login para comentar.