Ipython: Tidak dapat keluar dari IPython.embed() saat dipanggil berulang kali dalam fungsi di dalam for-loop

Dibuat pada 20 Jan 2016  ·  3Komentar  ·  Sumber: ipython/ipython

Saya menjalankan foo.py dari baris perintah, dan itu termasuk fungsi yang memiliki for loop, di dalamnya adalah fungsi yang memiliki pernyataan IPython.embed(). Ini untuk menginisialisasi juru bahasa pada titik itu di dalam fungsi untuk memiliki akses ke variabel lokal tersebut.

Namun, ketika mencoba melarikan diri dari juru bahasa yang disematkan, itu hanya membuka juru bahasa baru (mungkin hingga k kali untuk for loop), secara efektif mengunci terminal itu.

Akan menyenangkan untuk memiliki perintah yang analog dengan ipdb 's q , yang segera melempar pengecualian dan keluar ke CLI di mana foo.py dieksekusi.

Komentar yang paling membantu

Akan menyenangkan untuk memiliki satu perintah yang akan sepenuhnya menghentikan eksekusi skrip. Seperti yang setara dengan:

  1. %kill_embedded (dan ya, tentu saja)
  2. exit
  3. "ctrl + c" (tiga kali)

Semua 3 komentar

Coba %kill_embedded - itu tidak keluar dari loop Anda, tetapi itu harus membuat semua panggilan di masa mendatang ke embed() tanpa operasi, sehingga sisa skrip Anda dieksekusi sampai selesai.

Akan menyenangkan untuk memiliki satu perintah yang akan sepenuhnya menghentikan eksekusi skrip. Seperti yang setara dengan:

  1. %kill_embedded (dan ya, tentu saja)
  2. exit
  3. "ctrl + c" (tiga kali)

%exit_raise akan memunculkan pengecualian ke dalam konteks luar dan kode Anda akan keluar

Apakah halaman ini membantu?
0 / 5 - 0 peringkat