يتضح هذا من خلال الصورة المتحركة التالية:
يؤدي استيراد pyplot في تعويض python العادي إلى ظهور رمز صاروخ Python ولكن لا يرتد بشكل يشتت الانتباه. يؤدي استيراده داخل IPython إلى ارتداد الرمز بشكل مزعج لمدة دقيقة تقريبًا.
هذا باستخدام إطار عمل بناء Python من Homebrew.
أي الخلفية تستخدم؟ هل تشغيل plt.ion()
أو %matplotlib
مساعدة؟
بلدي النطر / صنع هذا كما أعتقد هو: عندما تم فصل IPython عن readline ، فقد انفصل أيضًا عن الماكينة PyOS_InputHook
. في حالة بيثون العادية ، يبدأ تشغيل واجهة المستخدم الرسومية (بدء الارتداد) ، ويقوم رمز واجهة المستخدم الرسومية بتثبيت الخطاف ، وعندما ينتهي من بدء تشغيل بعض الهواتف في المنزل للسماح للصاروخ بالتوقف عن الارتداد لأن حلقة واجهة المستخدم الرئيسية تعمل بالتداخل مع الرد. في IPython ، لا يزال هذا الخطاف مثبتًا ، ولكن لا يهم لأن IPython يعمل من خلال مجموعة الأدوات الفورية. إذا بدأت تشغيل تكامل حلقة حدث IPython ، فستتصل واجهة المستخدم الرسومية بالمنزل وتوقف الارتداد.
أو يمكن أن أكون بعيدًا عن القاعدة.
هذا باستخدام الواجهة الخلفية MacOSX
. لا يؤدي استخدام plt.ion()
أو %matplotlib
بعد استيراد pyplot
إيقاف الارتداد واستخدام %matplotlib
قبل إجراء استيراد pyplot يؤدي فقط إلى بدء الرمز في الارتداد.
هل يحدث ذلك مع tk backend؟
كلا ، لا يوجد رمز صاروخ على الإطلاق بـ TkAgg
.
سأبقى مرتبطًا بـ # 9312
سأحاول فهمه. بينغminrk.
سأقول أن هذا :
if not window_count:
return
يجب إزالتها حيث يجب تشغيل تكامل eventloop حتى إذا لم يكن هناك نوافذ ... يبدو أنه يعمل من أجلي.
قد يكون البديل هو التأكد من أن inputhook(context)
يقوم بحلقة واحدة على الأقل حتى إذا لم تكن هناك نوافذ .. لذا على طول:
global at_least_once
if not window_count and not at_least_once:
at_least_once = True
return
ngoldbaum هل تمانع في المحاولة؟
أفترض أيضًا أنه سيتوقف عن الارتداد بمجرد أن يكون لديك نافذتك الأولى؟
يسعدني تسجيل الشاشة أيضًا لأنه واقعي في كتابته ، ويجعلني أشعر بالذنب تجاه كتابتي المروعة.
في الواقع ، إزالة ذلك
if not window_count:
return
كتلة يصلح المشكلة بالنسبة لي. وكما كنت تعتقد ، فإن إنشاء الحبكة يوقف الارتداد.
مقدم # 10150 ، سينتظر مراجعة المزيد من الأشخاص المؤهلين.
استغرق الأمر مني 10 ثوان فقط لأدرك أن جهازي لم يتم تجميده ولكن المؤشر الذي كنت أنظر إليه كان المؤشر في ملف gif الخاص بك.
التعليق الأكثر فائدة
استغرق الأمر مني 10 ثوان فقط لأدرك أن جهازي لم يتم تجميده ولكن المؤشر الذي كنت أنظر إليه كان المؤشر في ملف gif الخاص بك.