Ipython: يؤدي استيراد pyplot إلى ارتداد أيقونة قفص الاتهام على نظام Mac

تم إنشاؤها على ٨ يناير ٢٠١٧  ·  10تعليقات  ·  مصدر: ipython/ipython

يتضح هذا من خلال الصورة المتحركة التالية:

image

يؤدي استيراد pyplot في تعويض python العادي إلى ظهور رمز صاروخ Python ولكن لا يرتد بشكل يشتت الانتباه. يؤدي استيراده داخل IPython إلى ارتداد الرمز بشكل مزعج لمدة دقيقة تقريبًا.

هذا باستخدام إطار عمل بناء Python من Homebrew.

bug

التعليق الأكثر فائدة

استغرق الأمر مني 10 ثوان فقط لأدرك أن جهازي لم يتم تجميده ولكن المؤشر الذي كنت أنظر إليه كان المؤشر في ملف gif الخاص بك.

ال 10 كومينتر

أي الخلفية تستخدم؟ هل تشغيل 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 الخاص بك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات