Apakah ada cara untuk memaksa skrip Python secara terprogram jatuh ke REPL pada titik arbitrer dalam pelaksanaannya, bahkan jika skrip diluncurkan dari baris perintah?
Saya sedang menulis program penggambaran cepat dan kotor, yang saya ingin membaca data dari stdin atau file, memplotnya, dan kemudian memasukkannya ke dalam REPL untuk memungkinkan plotnya disesuaikan.
python
interactive
dsimcha
sumber
sumber
Saya sering menggunakan ini:
sumber
pdb
, Anda bisa menggunakaninteract
.Inilah cara Anda melakukannya (IPython> v0.11):
Untuk IPython <= v0.11:
Anda harus menggunakan IPython, Cadillac dari Python REPL. Lihat http://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipython
Dari dokumentasi:
sumber
Untuk menggunakan iPython dan fungsionalitas debugger Anda harus menggunakan ipdb ,
Anda dapat menggunakannya dengan cara yang sama seperti pdb, dengan tambahan:
sumber
Anda dapat meluncurkan debugger:
Tidak yakin untuk apa Anda menginginkan REPL, tetapi debuggernya sangat mirip.
sumber
Saya baru saja melakukan ini di salah satu skrip saya sendiri (ini berjalan di dalam kerangka kerja otomatisasi yang merupakan PITA besar untuk instrumen):
Letakkan saja ini di mana pun Anda ingin breakpoint, dan Anda dapat memeriksa status menggunakan sintaks yang sama dengan interpreter python (meskipun tampaknya tidak memungkinkan Anda melakukan impor modul). Ini tidak terlalu elegan, tetapi tidak memerlukan pengaturan lain.
sumber