Spyder: غير قادر على رؤية المؤامرات التي تم إنشاؤها باستخدام Matplotlib أثناء تصحيح الأخطاء

تم إنشاؤها على ١٧ فبراير ٢٠١٥  ·  47تعليقات  ·  مصدر: spyder-ide/spyder

_ From al.dan ... @ gmail.com بتاريخ 2011-04-12T17: 33: 50Z_

هذا البرنامج النصي ، عند تشغيله داخل سبايدر ، يعمل بشكل جيد وينتج مخطط محيطي:

#! / usr / bin / env python
من matplotlib.pyplot import imshow ، show
استيراد numpy كـ np
س = np.random.rand (4،5)
imshow (x)
تبين()

ومع ذلك ، إذا قمت بالدخول إلى وضع التصحيح ووضعت نقطة توقف في سطر imshow (x) ، فاكتب يدويًا أوامر imshow (x) و show () في موجه (Pdb) ، فلن يظهر أي مخطط. أحصل فقط على إشارة إلى كائن المؤامرة:

(PDB) imshow (x)

(PDB) عرض ()
(PDB)

سيكون تحسينًا جيدًا لتكون قادرًا على رسم المتغيرات في وضع التصحيح.

بايثون 2.7.1
NumPy 1.5.1
matplotlib 1.0.1 (خلفية WXAgg)
RHEL 4.8 إلى x86_64

_المشكلة الأصلية: http://code.google.com/p/spyderlib/issues/detail ؟ id=620_

11–20 stars Debugger Bug

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

راجع https://github.com/matplotlib/matplotlib/pull/4779 للحصول على تفاصيل دموية.

النسخة القصيرة جدًا ، لكي تكون واجهة المستخدم الرسومية مستجيبة ، يجب تشغيل حلقة الحدث (وهي في الأساس حلقة لا نهائية تنتظر إدخال / إخراج المستخدم). موجه التصحيح أيضًا في حلقة لا نهائية في انتظار قيام المستخدم بالكتابة. في الموجه "العادي" هناك بعض أعمال التكامل الدقيقة التي تم إجراؤها للسماح لهاتين الحلقتين بالمشاركة (بشكل أساسي ، يتيح الموجه تشغيل حلقة واجهة المستخدم الرسومية حتى يتم الضغط على مفتاح واحد ، ومعالجة المفاتيح ، ثم إعادة تشغيل حلقة حدث واجهة المستخدم الرسومية). في موجه التصحيح ، لم يتم إجراء هذا التكامل ويبدو الرقم "ميتًا". سيؤثر هذا على أي نافذة قائمة على واجهة المستخدم الرسومية.

سبب استدعاء plt.pause() works هو تشغيل حلقة حدث GUI بشكل صريح لعدد الثواني المحدد.

تعمل الواجهة الخلفية المضمنة لأنها تنتج ملف png ثابت فقط (وكذلك دائمًا _ "ميت").

ال 47 كومينتر

_ From al.dan ... @ gmail.com بتاريخ 2011-04-12T15: 40: 57Z_

نسيت أن أضيف أن هذا مع spyder 2.0.8 و ipython 0.10.1.
أيضا ، الخلفية عند تشغيل سبايدر هي Qt4Agg. أحصل على WXAgg عندما أقوم بتشغيل ipython مباشرة من نافذة طرفية (أي بشكل مستقل عن spyder).

_ من ccordoba12 بتاريخ 2011-05-15T19: 31: 44Z_

التسميات: Cat-Debugger

_ من ccordoba12 في 2011-08-16T11: 41: 02Z_

تم دمج الإصدار رقم 733 في هذه المشكلة.

_ From eigenjoh ... @ gmail.com بتاريخ 2011-11-10T07: 23: 21Z_

هذا الإصلاح سيجعل هذا التطبيق قاتل matlab

_ من kavaldj ... @ gmail.com on 2013-05-12T21: 43: 03Z_

هل تم إصلاح هذا أو معالجته بطريقة ما؟

أوافق على التعليق #4 : هذا سيجعل Spyder أقرب إلى ML killer

_من contrebasse في 2013-05-13T00: 37: 52Z_

1: هذا أمر طبيعي ، الواجهة الخلفية defalut لـ matplotlib هي WXAgg. يمكنك تغييره في البرنامج النصي الخاص بك:

استيراد matplotlib
matplotlib.use ('Qt4Agg' ، تحذير = خطأ)

_ From jed.lud ... @ gmail.com on 2013-05-13T07: 45: 45Z_

التشخيصات الحديثة الإضافية بعد إجراء المزيد من الاختبارات:

  • يفشل التخطيط أثناء التصحيح داخل Spyder عند تنفيذ البرنامج النصي داخل جلسة Python التفاعلية الحالية أو جلسة IPython التفاعلية. هذا صحيح بالنسبة للخلفيات Qt4Agg أو WXAgg.
  • يعمل التخطيط أثناء التصحيح بشكل جيد داخل Spyder إذا تم تعيين البرنامج النصي للتنفيذ في مترجم Python المخصص الخاص به. هذا أيضًا مستقل عن الخلفية.
  • التخطيط أثناء التصحيح يعمل بشكل جيد من جلسة "ipython qtconsole" عند تنفيذها في وحدة تحكم النظام.

Soyder 2.3.0dev (مراجعة 0bb65fdb4b6e)
Python 2.7.3 32 بت
ايبثون 0.13.2
Matplotlib 1.2.0.0 تحديث
Windows 7 (64 بت)

_ من kavaldj ... @ gmail.com on 2013-05-14T13: 45: 31Z_

8 جيد ، شكرا !!

تشغيل التصحيح بمترجم مخصص يعمل بالنسبة لي ، شكرًا على التلميح الرائع!

أعتذر إذا بدوت جشعًا ، لكن هل هناك طريقة بسيطة لجعل الشكل غير نمطي؟

في الوقت الحالي ، يحجب المترجم الفوري حيث تم إيقافه في Pdb ، فربما توجد خدعة أخرى يمكنني استخدامها؟ أنا فقط أستدعى imshow (بيانات) ، إظهار ().

شكرا جزيلا لك مقدما!
دان

_ From jed.lud ... @ gmail.com on 2013-05-14T16: 55:16Z_

@ -kavaldijiev: جعل الشكل غير مشروط هو قطعة صعبة الحل. يبدو أن كارلوس نظر في حل هذه المشكلة تحت رقم 733 ، وقد لا يكون الأمر بسيطًا بدون بعض أعمال الخيط المثيرة للاهتمام. من المحتمل أن يكون له علاقة بوضع matplotlib التفاعلي الذي يجب أن يعمل بالتوازي مع pdb ، وعليك معرفة كيفية جعل هذه الخيوط تتعاون.

لاحظ أنه إذا كنت تحاول الرسم أثناء تصحيح الأخطاء في IPython Qt Console ، فسيتم حظره أيضًا بعد إصدار الأمر "show ()". إنه ليس تفاعليًا تمامًا هناك أيضًا.

يبدو أن العمل في مترجم فوري هو أفضل حل بديل في الوقت الحالي.

_ من kavaldj ... @ gmail.com on 2013-05-15T14: 54: 57Z_

@ -jed شكرا لك على الشرح التفصيلي!

سوف أدير مع شخصيات مشروطة. لكن الأمر يستحق بالتأكيد أن نجعله يعمل على المدى الطويل ، فقد يكون جذابًا للغاية لجمهور MATLAB.

_ From jed.lud ... @ gmail.com on 2013-05-16T07: 57: 29Z_

@ -kavaldijiev: بعد مزيد من التحقيق ، هناك حل آخر يجب أن يوفر لك طريقة للتخطيط بشكل تفاعلي أثناء التصحيح. يبدو أنه من المحتمل أن تكون مكونات Qt GUI هي التي تعترض طريق التخطيط التفاعلي. إذا قمت بتشغيل IPython _without_ واجهة وحدة التحكم Qt ، تعمل التخطيط التفاعلي أثناء تصحيح الأخطاء _ دون_ حظر. هذه هي الأوامر:

  1. افتح موجه الأوامر و cd إلى الدليل حيث يوجد البرنامج النصي الخاص بك.
  2. قم بتشغيل "ipython --pylab" عند المطالبة.
  3. داخل IPython ، قم بتشغيل "٪ run -d.السنة التحضيرية"
  4. يجب أن تكون الآن قادرًا على التنقل عبر الكود باستخدام أوامر pdb ، والتخطيط باستخدام imshow () ، ويجب أن ترسم المؤامرة دون حظر إدخال سطر الأوامر.

_ From jed.lud ... @ gmail.com on 2013-05-16T15: 11: 32Z_

وبعد المزيد من البحث ، وجدت هذه الإجابة: http://stackoverflow.com/questions/12822762/pylab-ion-in-python-2-matplotlib-1-1-1-and-updating-of-the -plot-while-the-pro / 12826273 # 12826273 لذلك ، إذا تم تعديل الكود في

من matplotlib.pyplot import imshow ، pause
استيراد numpy كـ np
س = np.random.rand (4،5)
imshow (x)
بوز (1)

يمكنك الحصول على قطعة الأرض للتحديث بشكل تفاعلي داخل وحدة تحكم Spyder التفاعلية أثناء تصحيح الأخطاء دون حظر! لذلك ، استخدم إيقاف مؤقت (1) بدلاً من إظهار (). تصبح الحبكة تفاعلية فقط لمدة الإيقاف المؤقت ، لذلك إذا كنت تريد المزيد من الوقت للتكبير أو التحريك في البيانات ، فاستخدم الإيقاف المؤقت (10) أو الإيقاف المؤقت (20). يعمل في IPython Qt Console أيضًا.

_ من kavaldj ... @ gmail.com on 2013-05-16T22: 35: 04Z_

@ -jed ، شكرًا ، كلا الطريقتين تعملان!

تبدو طريقة موجه الأوامر أكثر قوة - يمكنني إغلاق الأشكال المفتوحة ، ويمكن للأرقام الحصول على التركيز (للتكبير ، إلخ) حتى الإغلاق.

من الواضح أن طريقة الإيقاف المؤقت مفضلة لأنها داخل Spyder. يعيد الإيقاف المؤقت التحكم في لوحة المفاتيح ، لكن لا ينبغي إغلاق النافذة ، وإلا فإن المترجم يتوقف. فتح المزيد من الشخصيات الجديدة مهتز - أحيانًا ينجح ، وأحيانًا أخرى لا ، لكنني لم أقضي الكثير من الوقت في الاختبار.

على أي حال ، فإن أيًا منها مفيد للغاية في تصحيح الأخطاء ، حتى لو لم يكن بهذه السهولة والقوة مثل ML.

في صحتك،
دان

_ From al.dan ... @ gmail.com on 2013-05-19T21: 08: 30Z_

سعيد لرؤية التقدم بعد بضع سنوات. نعم ، خدعة الإيقاف المؤقت (n) تعمل جيدًا بالنسبة لي. شكرًا ، @ -jed ، على متابعة الحل!

_ From jed.lud ... @ gmail.com on 2013-05-20T09: 13: 28Z_

لا يمكنني الحصول على الكثير من الفضل في أي شيء آخر غير التحقيق. وظيفة الإيقاف المؤقت (n) هي ميزة matplotlib التي اكتشفتها للتو.

في النهاية ، جذر هذه المشكلة هو التفاعل بين حلقات حدث رسم matplotlib وحلقات أحداث تطبيق Qt ، ولست متأكدًا من وجود حل "Spyder" لها حقًا. ربما يجب معالجتها على مستوى matplotlib. كدليل على ذلك ، يعاني تشغيل IPython في وحدات تحكم Qt من نفس القيود.

_ من jason.bo ... @ gmail.com في 2014-07-07T05: 33: 04Z_

يبدو أن هذه المشكلة قد تم حلها في IEP: https://bitbucket.org/iep-project/iep/issue/297/interactive-plotting-is-not-working-during

_ من ccordoba12 في

تم دمج الإصدار رقم 1848 في هذه المشكلة.

كنت أتساءل فقط عما إذا كان بإمكان أحدهم أن يعطيني نظرة صغيرة إلى أين نتجه مع كل هذا. أظن أنني لست الوحيد الذي قضى الكثير من الوقت في استخدام Matlab وهو منجذب جدًا إلى عالم Python لأسباب مختلفة وإحساس بأن الإنتاجية الحقيقية قريبة للغاية ولكن مثل السراب يبدو دائمًا بالخارج من الوصول. حل الإيقاف المؤقت () رائع واستجابة فريق سبايدر رائعة حقًا. والآن بعد أن تم القضاء على مشكلة المحرر البطيء في El Capitan على ما يبدو في الإصدار التجريبي 3.0 ، يبدو الأمر كله قريبًا جدًا. و بعد ...

إذن إلى أين يعتقد الخبير أن كل هذا يتجه؟ مما يمكنني جمعه ، جزء كبير من المشكلة هو Matplotlib نفسه. وأجمع أيضًا أن guiqwt ليس جيدًا في الوقت الحالي أيضًا. فهل يعتقد الناس أننا نتجه نحو موقف يمكننا فيه تصحيح الأخطاء في IDE ، والوصول إلى نقاط التوقف ، والقيام بالتخطيط التفاعلي من نقاط التوقف ، كل ذلك بسلاسة إلى حد ما؟ أعتقد أن هذا هو ما يريده جميع مستخدمي Matlab السابقين ، ويتساءل البعض منا عما إذا كان ينبغي علينا دفع 200 دولار من أجل Matlab Home Edition ، والعودة إلى The Borg والابتعاد عن نهج Python وجاذبية البرامج المجتمعية و لغة بايثون.

قد يبدو الأمر وكأنني أشتكي ، لكنني في الواقع أحاول فقط معرفة كيفية استثمار وقتي. أريد حقًا أن تكون طريقة بايثون قاتلة ماتلاب ، يمكن أن تكون ...

jandyman ، من فضلك لا تيأس :-) لقد قمنا بإعادة تنظيم / تنظيف ضخمة لـ Spyder 3.0 والتي ستكون مفيدة جدًا لـ Spyder 4.0 ، حيث نخطط لحل هذه المشكلة.

المشكلة الحقيقية ليست مع Matplotlib ، إنها مع بنية IPython / Jupyter التي تمنع وحدة التحكم أثناء التصحيح ، مما يمنعنا من تشغيل جلسة تصحيح أخطاء أكثر تميزًا (مع تصفح المحفوظات والمؤامرات) كما في Matlab.

لكن اسمحوا لي أن أؤكد لكم أنه بعد إصدار 3.0 (خلال شهر أو نحو ذلك) ، سيتم توجيه جميع جهودنا لحل العديد من مشكلات تصحيح الأخطاء المعلقة والبغيضة التي يواجهها Spyder. إذا سارت الأمور على ما يرام ونجحنا ، فإننا نخطط لإصدار إصلاحاتنا في 4.0 (كما قلت) بحلول نهاية العام ، أو في وقت مبكر من العام التالي :-)

أجمع أيضًا أن guiqwt ليس جيدًا في الوقت الحالي أيضًا

هذا هو مشروع PierreRaybaut (نفس الشخص الذي أنشأ Spyder). للأسف لم يكن لديه الكثير من الوقت للمصدر المفتوح مؤخرًا :-(

أجمع أيضًا أن guiqwt ليس جيدًا في الوقت الحالي أيضًا

هذا هو مشروع PierreRaybaut (نفس الشخص الذي أنشأ Spyder). للأسف لم يكن لديه الكثير من الوقت للمصدر المفتوح مؤخرًا :-(

@ ccordoba12،jandyman: وهذا الحق، للأسف.
ومع ذلك ، فقد قمت ببعض الأعمال المهمة مؤخرًا بشأن guiqwt: لقد قمت بحل مشكلة تقادم PyQwt من خلال إعادة تنفيذها في Python الخالصة (انظر مشروع PythonQwt ) بحيث لا يعتمد guiqwt v3 على PyQwt بعد الآن. لا أعتقد أن guiqwt في حالة سيئة الآن: بفضل التطورات الأخيرة ، فهو يعمل على Python 2.7 و 3.0-3.5 ومع Qt4-Qt5. لكن المشروع لا ينمو ، لأنه ليس لدي وقت لإدارته (مثل إنشاء ميزات جديدة ، والترويج للمكتبة ، وما إلى ذلك) - أنا أقوم فقط بالصيانة ، حتى تستمر الميزات الحالية في العمل كما كان من قبل. كما هو ، لاحظ أنه لا يزال بعيدًا ، وأكثر أداءً بكثير من matplotlib (أو MATLAB) لعرض الصور الكبيرة ومعالجتها في الوقت الفعلي (zomming / panning ، وضبط التباين ، ورسم المقاطع العرضية ، إلخ) على سبيل المثال ، وهي الطريق إلى الأمام matplotlib فيما يتعلق بالتفاعل.

فيما يتعلق بالمنشور الأصلي @ ccordoba12 ، يعتمد Spyder الآن على IPython / Jupyter: هذا شيء رائع لأنه أتاح الكثير من الميزات الجديدة ولكن له أيضًا عيوبه.
على أي حال ، لا أفهم لماذا لا يكون من الممكن التفاعل في Spyder بنفس الطريقة في MATLAB.

مرحبا بالجميع ،

أنا أحد المستخدمين الذين تحولوا من MATLAB إلى Python. أعتقد أن Spyder هو IDE رائع ، لكن مشكلة عدم وجود مخطط تفاعلي أثناء تصحيح الأخطاء يمثل عيبًا مهمًا للأشخاص الذين يأتون من MATLAB.

أعتقد أنه لا ينبغي أن يكون حلها بهذه الصعوبة. على سبيل المثال ، أقوم بتشغيل IPython من محطة نظام (بدون qtConsole) ، ويمكنني عمل مؤامرة تفاعلية (guiqwt) دون عيب ، إما من جلسات IPython أو ipdb. أيضًا ، لدي سجل أوامر أثناء التصحيح. أعتقد أنه إذا قمت فقط باستبدال (أو إضافة خيار) تشغيل ipython من محطة طرفية (بدون qtConsole) ، فسيتم حل هذه المشكلة.

من فضلك ، حاول إصلاح هذا ، لأنني أعتقد أن هذا هو الشيء الوحيد الذي يمنع الكثير من الناس من استخدام Spyder.

شكر،

فيليبي

أعتقد أنه لا ينبغي أن يكون حلها بهذه الصعوبة.

أنه. المكتبات والتقنيات المستخدمة من قبل IPython في الجهاز ، و qtconsole مختلفة تمامًا.

ليس لأي شيء تم فتح هذا الخطأ لمدة 5 سنوات ، وسيظل كذلك لبعض الوقت ؛-)

أحتاج إلى هذه الميزة لأنني أستخدم Spyder باعتباره IDE الرئيسي لتطوير خوارزميات معالجة الصور ، وعرض الصور أثناء تصحيح الأخطاء هو طلب ميزة شائع جدًا.

أود ذلك أيضًا ، فأنا أستخدم Spyder بشكل أساسي لتصحيح الأخطاء.

mmagnuski ، هذا ممكن الآن باستخدام السحر %plot أثناء التصحيح ، مثل هذا

%plot plt.plot(range(10))

ولكن لكي يعمل هذا ، تحتاج إلى تعيين الواجهة الخلفية لـ Matplotlib على Inline .

tacaswell كنت أجري محادثة مع WeatherGod واعتقد أنك قد تكون قادرًا على المشاركة.

سيكون رائعًا إذا نجح هذا "بسلاسة" على الرغم من أنني أفهم أنه صعب.

في الوقت الحالي ، أستخدم خدعة pause(10) .

راجع https://github.com/matplotlib/matplotlib/pull/4779 للحصول على تفاصيل دموية.

النسخة القصيرة جدًا ، لكي تكون واجهة المستخدم الرسومية مستجيبة ، يجب تشغيل حلقة الحدث (وهي في الأساس حلقة لا نهائية تنتظر إدخال / إخراج المستخدم). موجه التصحيح أيضًا في حلقة لا نهائية في انتظار قيام المستخدم بالكتابة. في الموجه "العادي" هناك بعض أعمال التكامل الدقيقة التي تم إجراؤها للسماح لهاتين الحلقتين بالمشاركة (بشكل أساسي ، يتيح الموجه تشغيل حلقة واجهة المستخدم الرسومية حتى يتم الضغط على مفتاح واحد ، ومعالجة المفاتيح ، ثم إعادة تشغيل حلقة حدث واجهة المستخدم الرسومية). في موجه التصحيح ، لم يتم إجراء هذا التكامل ويبدو الرقم "ميتًا". سيؤثر هذا على أي نافذة قائمة على واجهة المستخدم الرسومية.

سبب استدعاء plt.pause() works هو تشغيل حلقة حدث GUI بشكل صريح لعدد الثواني المحدد.

تعمل الواجهة الخلفية المضمنة لأنها تنتج ملف png ثابت فقط (وكذلك دائمًا _ "ميت").

شكرا على الشرح والمشكلة المرتبطة توماس!

أعتقد أن هذا العلاقات العامة سوف يحلها: https://github.com/ipython/ipykernel/pull/438

عمل عظيم! شكرا جزيلا @ effect27!

أي حل لهذا؟ لا أستطيع إغلاق الشكل بعد plt.pause (1). حاولت إغلاق plt.close () وقفة مرة أخرى ولكن نجحت. شكر

أي حل لهذا؟ لا أستطيع إغلاق الشكل بعد plt.pause (1). حاولت إغلاق plt.close () وقفة مرة أخرى ولكن نجحت. شكر

يجب عليك إعطاء رقم الشكل كوسيطة لـ plt.close() (أو 'all' ). الحل الآن هو plt.pause . سيتم حلها عند / إذا تم دمج ipykernel https://github.com/ipython/ipykernel/pull/438. أنا شخصيا أستخدم نسخة معدلة من ipykernel مع دمج هذا الفرع.

أي حل لهذا؟ لا أستطيع إغلاق الشكل بعد plt.pause (1). حاولت إغلاق plt.close () وقفة مرة أخرى ولكن نجحت. شكر

يجب عليك إعطاء رقم الشكل كوسيطة لـ plt.close() (أو 'all' ). الحل الآن هو plt.pause . سيتم حلها عندما / إذا دمج ipykernel ipython / ipykernel # 438 . أنا شخصيا أستخدم نسخة معدلة من ipykernel مع دمج هذا الفرع.

لم تنجح. أقوم بتشغيل plt.figure (1) ؛ plt.imshow (myimage) ؛ plt.pause (1) ؛ plt.close (1) ولا توجد نتائج. أنا على IPython 7.11.1 و Spyder 4.0.1 و python 3.7.5

كنت قادرا على التكاثر. الرجاء فتح قضية جديدة حول ذلك. كحل بديل ، يمكنك إغلاقها باستخدام التقاطع بينما تكون أقل من plt.pause

كنت قادرا على التكاثر. الرجاء فتح قضية جديدة حول ذلك. كحل بديل ، يمكنك إغلاقها باستخدام التقاطع بينما تكون أقل من plt.pause

نجح هذا الحل. هذا غريب. شكرا على كل حال

هذه ليست مجرد مشكلة أثناء التصحيح. لقد تم تنشيط الواجهة الخلفية المضمنة. إليك مثال بسيط للعمل:

import numpy as np
import matplotlib.pyplot as plt

x, y = np.random.rand(2, 5)

fig = plt.figure()

ax = fig.add_subplot(111)

ax.scatter(x, y)

إذا قمت "بتشغيل ملف" في المثال ، تظهر مؤامرة مضمنة. إذا قمت بتحديد المثال بالكامل و "تشغيل التحديد أو السطر الحالي" ، يظهر مخطط مضمّن. إذا قمت بتحديد الأسطر 1-6 و "تشغيل التحديد أو السطر الحالي" ، واكتب بقية المثال في وحدة التحكم ، فلن يظهر أي مخطط. يظهر المرجع إلى كائن الرسم.

هذه ليست مجرد مشكلة أثناء التصحيح. لقد تم تنشيط الواجهة الخلفية المضمنة. إليك مثال بسيط للعمل:

import numpy as np
import matplotlib.pyplot as plt

x, y = np.random.rand(2, 5)

fig = plt.figure()

ax = fig.add_subplot(111)

ax.scatter(x, y)

إذا قمت "بتشغيل ملف" في المثال ، تظهر مؤامرة مضمنة. إذا قمت بتحديد المثال بالكامل و "تشغيل التحديد أو السطر الحالي" ، يظهر مخطط مضمّن. إذا قمت بتحديد الأسطر 1-6 و "تشغيل التحديد أو السطر الحالي" ، واكتب بقية المثال في وحدة التحكم ، فلن يظهر أي مخطط. يظهر المرجع إلى كائن الرسم.

لا أعتقد أن هذا مرتبط بهذا الخطأ. هذا هو أحد قيود استخدام الواجهة الخلفية المضمنة التي لا "تعيد الرسم" نفسها رسمها. إذا كنت بحاجة إلى رسم شيء ما بشكل صريح في النهاية الخلفية المضمنة ، فيمكنك القيام بما يلي:

from IPython.core.display import display
display(fig)

display(fig) يعمل. ومع ذلك ، فإن السلوك غير المتسق بين التشغيل الكامل للملف وتشغيل الملف جزئيًا والانتهاء في وحدة التحكم أمر محير.

kdpenner - ستحصل على نفس السلوك على سبيل المثال في دفتر الملاحظات إذا قسمت الكود بين الخلايا ، فهذا متوقع. لكن لا أعتقد أنك بحاجة إلى استخدام وظيفة display() لهذا الغرض. كتابة fig في وحدة التحكم يجب أن يرسم الشكل.

fig يعمل أيضًا. ربما تم تصميم هذا الاختلاف في السلوكيات ، لكنه ليس ما أتوقعه كمستخدم.

kdpenner ما قصدته هو أنك ستحصل على نفس السلوك في بيئات أخرى مع خلفية مضمنة ، لذا فهذه ليست مشكلة مع Spyder.

mmagnuski فهمت. شكرًا على الحل البديل fig .

🎉

شكرا جزيلا لإصلاح هذا!

مثير!

يمكنك أن تقرأ عن هذا وعن التحسينات الأخرى لمصحح الأخطاء لدينا والتي ظهرت في الإصدار 4.2.0 هنا .

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