Quero copiar o código Python já recuado / funções e classes inteiras para o IPython. Toda vez que tento o recuo está bagunçado e recebo a seguinte mensagem de erro:
IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)
If you want to paste code into IPython, try the %paste and %cpaste magic functions.
Respostas:
Você não pode copiar para IPython diretamente. Estas são as etapas:
%paste
no IPythonfonte
%autoindent
.Ipython 5
você pode apenas colar o código. Não precisa%paste
mais. Leia esta resposta .paste
.Um esclarecimento sobre as etapas:
Primeiro, copie as linhas de destino em sua área de transferência.
Digite no prompt do iPython:
%paste
%cpaste
Cole (Ctrl-V) e pressione Enter.
Em seguida, digite
--
e pressione Enter.Por exemplo:
fonte
A partir do Ipython 5 você não precisa de nenhum comando mágico, apenas cole
Mais sobre isso aqui
Para atualizar
ipython
para a versão mais recentefonte
>
sinais como este:>>> a = 1 + 2
%paste
requerTkinter
. Se você estiver no ubuntu, você pode instalá-loSe você estiver no Python3
Em seguida, reinicie o ipython e use
%paste
para colar da sua área de transferência.fonte
Uma das respostas úteis foi perdida nos comentários, portanto, queria reformulá-la junto com a adição de uma referência para outra função mágica útil do IPython.
Primeiro, para reafirmar o que @EOL disse, uma maneira de resolver o problema do OP é desligar a indentação automática executando primeiro
%autoindent
e colando (não é necessário se você estiver usando%paste
, é claro).Agora, para adicionar mais informações ao que já está lá, um modo mais útil no IPython é o
%doctest_mode
que permite que você copie exemplos de colagem e trechos de teste de strings de doc. Isso também é útil para executar a saída de sessão Python interativa que você pode encontrar na documentação e fóruns online, sem ter que remover primeiro as strings de prompt.fonte
Para usuários do Ubuntu que usam Python 3.
O
python-tk
é para Python 2.Para fazer
%paste
funcionar no Python 3, instale opython3-tk
pacote:fonte