Ini diilustrasikan oleh gif berikut:
Mengimpor pyplot di replika python normal menyebabkan ikon roket python muncul tetapi tidak memantul secara mengganggu. Mengimpornya ke dalam IPython menyebabkan ikon memantul secara mengganggu selama hampir satu menit.
Ini menggunakan kerangka build Python dari Homebrew.
backend mana yang Anda gunakan? Apakah menjalankan plt.ion()
atau %matplotlib
membantu?
Saya tidak tahu apa-apa / membuat ini saat saya menebaknya adalah: Ketika IPython memisahkan dari readline, itu juga dipisahkan dari mesin PyOS_InputHook
. Dalam kasus python biasa, GUI dimulai (memulai pantulan), kode GUI menginstal hook, dan ketika selesai memulai beberapa cara telepon rumah untuk membiarkan roket tahu untuk berhenti memantul karena loop utama gui berjalan saling terkait dengan repl. Di IPython, hook itu masih terpasang, tetapi tidak masalah karena IPython berjalan melalui toolkit prompt. Jika Anda memulai integrasi loop acara IPython, GUI akan menelepon ke rumah dan menghentikan pemantulan.
Atau saya bisa sangat melenceng.
Ini menggunakan backend MacOSX
. Menggunakan plt.ion()
atau %matplotlib
setelah impor pyplot
tidak menghentikan pemantulan dan menggunakan %matplotlib
sebelum melakukan impor pyplot hanya menyebabkan ikon mulai memantul.
Apakah itu terjadi dengan backend tk?
Tidak, sama sekali tidak ada ikon roket dengan TkAgg
.
Saya akan tetap yang terkait dengan # 9312
Saya akan mencoba untuk memahaminya. Ping @minr.
Saya akan mengatakan bahwa ini :
if not window_count:
return
Perlu dihapus karena integrasi eventloop perlu dijalankan meskipun tidak ada jendela ... tampaknya berfungsi untuk saya.
Alternatifnya adalah memastikan inputhook(context)
melakukan setidaknya satu loop bahkan jika tidak ada jendela .. jadi berikut:
global at_least_once
if not window_count and not at_least_once:
at_least_once = True
return
@ngoldbaum maukah kamu mencoba?
Juga saya kira itu berhenti memantul segera setelah Anda memiliki jendela pertama Anda?
Rekaman layar juga membuat saya senang karena pengetikannya realistis, dan membuat saya merasa tidak terlalu bersalah tentang pengetikan yang menghebohkan.
Memang, menghapus itu
if not window_count:
return
blokir memperbaiki masalah saya. Dan seperti yang Anda duga, membuat plot menghentikan pantulan tersebut.
Dikirim # 10150, akan menunggu tinjauan dari lebih banyak orang yang memenuhi syarat.
Saya hanya butuh 10 detik untuk menyadari bahwa mesin saya tidak membeku tetapi penunjuk yang saya lihat adalah penunjuk di .gif Anda.
Komentar yang paling membantu
Saya hanya butuh 10 detik untuk menyadari bahwa mesin saya tidak membeku tetapi penunjuk yang saya lihat adalah penunjuk di .gif Anda.