Ipython: Não é possível escapar de IPython.embed () quando chamado repetidamente dentro de uma função dentro de um loop for

Criado em 20 jan. 2016  ·  3Comentários  ·  Fonte: ipython/ipython

Estou executando foo.py na linha de comando e inclui uma função com um loop for, dentro do qual está uma função que tem uma instrução IPython.embed (). Isso é para inicializar um interpretador naquele ponto dentro da função para ter acesso a essas variáveis ​​locais.

No entanto, ao tentar escapar do interpretador embutido, ele apenas abre um novo interpretador (presumivelmente até k vezes para o loop for), bloqueando efetivamente esse terminal.

Seria bom ter um comando análogo a ipdb 's q , que imediatamente lança uma exceção e sai para a CLI na qual foo.py foi executado.

Comentários muito úteis

Seria bom ter um único comando que parasse completamente a execução do script. Como o equivalente a:

  1. %kill_embedded (e sim, tenho certeza)
  2. exit
  3. "ctrl + c" (três vezes)

Todos 3 comentários

Tente %kill_embedded - ele não sai do seu loop, mas deve fazer todas as chamadas futuras para embed() no-ops, para que o resto do seu script seja executado até a conclusão.

Seria bom ter um único comando que parasse completamente a execução do script. Como o equivalente a:

  1. %kill_embedded (e sim, tenho certeza)
  2. exit
  3. "ctrl + c" (três vezes)

%exit_raise lançará uma exceção no contexto externo e seu código será encerrado

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jakirkham picture jakirkham  ·  4Comentários

jwkvam picture jwkvam  ·  4Comentários

frenzymadness picture frenzymadness  ·  3Comentários

hexhexd picture hexhexd  ·  4Comentários

sataliulan picture sataliulan  ·  4Comentários