Spyder: لا تظهر المتغيرات في المستكشف المتغير (Python 3.6)

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

وصف

ما هي الخطوات التي سوف تتكاثر هذه المشكلة؟

  1. افتح سبايدر
  2. اكتب بعض التعليمات البرمجية مع المتغيرات (حتى ثابتة)
  3. قم بتشغيل الكود ولا تظهر المتغيرات ، ولا حتى الثابت "epsilon"

ما هو الناتج المتوقع؟
أتوقع أن أرى بعض المخرجات في مستكشف المتغيرات. يحدث هذا على كل من Spyder 3.1.2 Linux و Windows.

يرجى تقديم أي معلومات إضافية أدناه
هذا هو الكود الخاص بي ، أحاول تنفيذ elmimination Gaussian:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 16 17:40:09 2017

<strong i="18">@author</strong>: 
"""

import numpy as np


def f(x):
    return 100*np.exp(-10*x)

def exact(x):
    return 1.0-(1-np.exp(-10))*x-np.exp(-10*x)

# Hardcoded params for simplicity
#fileout = pyOutput
exponent = 4
#n = 4

for k in range(1, exponent):
    # Weird thing we didn't understand
    n = 10**k

    # Append i to filename
    fileout = 'pyOutputSimple'
    fileout += str(k)

    # descretization resolution
    h = 1/n
    hh = h*h

    ''''''

    d = np.zeros(n+1)
    b = np.zeros(n+1)
    x = np.zeros(n+1)
    solution = np.zeros(n+1)

    d[0] = 2
    d[n] = 2
    solution[0] = 0
    solution[n] = 0
    for i in range(1,n):
        d[i] = (i+1)/i
    for i in range(0,n+1):
        x[i] = i*h
        b[i] = hh*f(i*h)

    # FW sub
    for i in range(2,n):
        b[i] = b[i] + b[i-1]/d[i-1]
    # Backward sub
    solution[n-1] = b[n-1]/d[n-1]    
    for i in range((n-2),0):
        solution[i] = (b[i]+solution[i+1])/d[i]

    with open(fileout, 'w') as fout:
        fout.write('x:\t\tApprox:\t\tExact:\t\tRelative Error:\n')
        for j in range(0,n):
            RelativeError = np.abs((exact(x[j])-solution[j])/exact(x[j]))
            fout.writelines('{0:.8f}'.format(x[j]) + '\t')
            fout.writelines('{0:.8f}'.format(solution[j]) + '\t')
            fout.writelines('{0:.8f}'.format(exact(x[j])) + '\t')
            fout.writelines('{0:.8f}'.format(np.log10(RelativeError)) + '\n')
    fout.closed
    print('File: ' + str(k) + '/' + str(exponent) + ' written.')

الإصدار والمكونات الرئيسية

  • إصدار سبايدر: 3.1.2
  • نسخة بايثون: 3.6.0
  • إصدارات Qt: 5.6.2 ، PyQt5 5.6 على Linux

التبعيات

يستخدم numpy

pyflakes >=0.6.0 :  1.5.0 (OK)
pep8 >=0.6       :  1.7.0 (OK)
pygments >=2.0   :  2.1.3 (OK)
qtconsole >=4.2.0:  4.2.1 (OK)
nbconvert >=4.0  :  4.2.0 (OK)
pandas >=0.13.1  :  0.19.2 (OK)
numpy >=1.7      :  1.11.3 (OK)
sphinx >=0.6.6   :  1.5.1 (OK)
rope >=0.9.4     :  0.9.4-1 (OK)
jedi >=0.8.1     :  0.9.0 (OK)
psutil >=0.3     :  5.0.1 (OK)
matplotlib >=1.0 :  2.0.0 (OK)
sympy >=0.7.3    :  1.0 (OK)
pylint >=0.25    :  1.6.4 (OK)

Variable Explorer Duplicate Bug

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

يوجد خيار في مستكشف المتغيرات يسمى Exclude unsupported types إذا تم إلغاء تحديده سيعرض جميع أنواع المتغيرات عليه.

ال 46 كومينتر

هل يحدث ذلك فقط في Python 3.6؟

بقدر ما أستطيع أن أقول ، نعم. لم أواجه هذه المشكلات مع Python 3.5 و Spyder 2.3.8 على جهاز Windows 7 الآخر.

يرجى التحديث إلى Spyder 3.1.3 والمحاولة مرة أخرى. تعمل اختباراتنا بشكل جيد في Python 3.6 ، وتكتشف ما إذا كانت الكائنات معروضة في مستكشف المتغيرات.

أعتقد أنني أواجه هذه المشكلة أيضًا وأنا أقوم بتشغيل 3.1.3 على Ubuntu. تقارير Ipdb ...

ipdb> sys.version_info
sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)

تمكنت من رؤية وظيفة المستكشف المتغير مقابل هذا الملف البسيط ...

substitutions = dict(planet="World")
print("Hello {planet}".format(**substitutions))

... وقد تصور بشكل صحيح substitutions ديكت

ومع ذلك ، عند التشغيل التفاعلي ضد هذا الملف ...
https://github.com/cefn/avatap/blob/6ad61cb3b8e198acae1caa6f187726fea4834b30/python/test.py
... لا يتم عرض أي شيء في نافذة مستكشف المتغيرات ، حتى من السطر الأول من أول استيراد محلي.

ومع ذلك ، فإن جزء ipdb التفاعلي قادر بالفعل على فحص المتغيرات عند تشغيل هذا الملف ، على سبيل المثال ، عند نقطة توقف Spyder في السطر 28 في test.py ، يمكنني القيام ...

ipdb> !locals().keys()
dict_keys(['BoxPassage', '___', 'Engine', 'ticks_ms', 'loadStory', '_oh', '_iii', 'ChoicePassage', '_ih', 'storyUid', '__package__', 'ConfirmationPassage', '_sh', '_', 'uidInitTypes', '__name__', 'UidRegistry', '__file__', '_i1', 'boxUids', 'getStoryContext', 'Card', 'UidItem', '_ii', 'In', '__builtins__', '_i2', '_dh', 'Container', 'Uid', '_i', '__', 'ConditionalPassage', '__spec__', 'passageUids', 'Box', '__doc__', '__builtin__', 'Story', 'Out', 'AnonymousContainer', 'PagePassage', 'exit', 'story', 'Item', '__loader__', '_i3', 'MockEngine', 'Passage', 'unittest', 'quit', 'get_ipython'])

... بينما لا يتم عرض أي شيء على الإطلاق في مستكشف المتغيرات.

لقد تأكدت من إزالة جميع حزم spyder و spyder3 ubuntu عبر apt-get purge ، ثم تم تثبيتها عبر نقطة مثل ...

sudo -H pip3 install --update spyder

وللتأكد بشكل مضاعف من عدم وجود شيء غريب يحدث ، ركضت بعد ذلك ...

pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 sudo -H pip3 install --upgrade

... لترقية جميع حزم pip3 إلى الأحدث ، ولكن لا يزال Spyder's Variable Explorer لا يتعاون.

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

سيتم إصلاحه في Spyder 3.2.

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

@ ccordoba12 هل هناك طلب سحب حيث يمكنني المساهمة في اختبار هذه الميزة مقابل الإصلاح المتوقع للهبوط في سبايدر 3.2؟ لقد حاولت دمج فرع debugger-improvements الخاص بك في spyder: head وفقًا لـ https://github.com/cefn/spyder/pull/1 ولكن هذا لا يغير سلوك Variable Explorer في ظل سيناريو التصحيح الموضح ( على الرغم من أن IDE يبدو مستقرًا ويعمل بطريقة أخرى).

ربما يكون عنصر قائمة الرغبات 3.2 لحلها ولم تتم كتابة الكود لحلها بعد؟ اسمحوا لي أن أعرف ما إذا كان هناك أي شيء حيث يكون الاختبار المباشر مفيدًا.

يوجد خيار في مستكشف المتغيرات يسمى Exclude unsupported types إذا تم إلغاء تحديده سيعرض جميع أنواع المتغيرات عليه.

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

أردت فقط إعادة الصوت مرة أخرى والقول إن المتغيرات تظهر الآن بشكل جيد في Spyder 3.1.3 على Linux عند استخدام التكوين التالي في ملف yml بيئة افتراضية conda:

https://github.com/sayboltm/tmp/blob/master/spyder_working.yml

لدي حدس أن إصدار QT الذي كنت أستخدمه من قبل قد يكون مرتبطًا بالمشكلة. لقد واجهت الكثير من المشكلات مع QT لـ python مع مشاريع أخرى تم حلها مؤخرًا فقط.

تحرير: رابط github بدلاً من لصق ملف yml بأكمله

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

image

واجهت نفس المشكلة بمجرد أن قمت بالترقية من برنامج سبايدر 3.1.3 إلى سبايدر 3.1.4. لاحظ أنه ضمن Tools / Preferences / Variable Explorer / Autorefresh ، يوجد مربع اختيار قد يلزم التحقق منه (تم إيقاف تشغيله بعد الترقية)

لقد فحصت هذا المربع ولم يتم تحديده ، ولكن مما يثير فزعي كثيرًا ، فحصه وإعادة تشغيل سبايدر ما زال لم يصلح هذه المشكلة التي تبدو متقطعة. هذا محير للغاية.

هل تم إصلاح هذا؟ أقوم بتشغيل الكود الخاص بي بنجاح ولكنني غير قادر على عرض أي من المتغيرات في مستكشف المتغيرات بعد ذلك. لماذا هذا؟ Spyder 3.2.0 مع Python 3.5.3.

أواجه نفس المشكلة هنا ، أنا أفسد إصدار Spyder: 3.1.4
غير قادر على عرض أنواع البيانات !!
وانا جديد هنا !!
ساعدني في حلها. :)
capture

شكراvishalnadagiri. حاليًا لا يتم دعم مصفوفات الكائنات (مع dtype=object ، أي مع البيانات غير الرقمية). هناك بالفعل PR مستمر (# 5260) لإضافة هذه الوظيفة. سيكون متاحًا في إصدار مستقبلي.

وفى الوقت نفسه:

  • يمكنك عرض بياناتك X إذا احتفظت بها على أنها DataFrame (فقط قم بإزالة .values في السطر 10)
  • أو يمكنك مشاهدته على أنه array إذا قمت بإزالة البيانات غير الرقمية (العمود الأول في حالتك)

شكرًا لك Prikers على المساعدة ، لقد حصلت للتو على عرض DataFrame عن طريق إزالة .values وقد عمل بشكل جيد ويمكنه عرض DataFrame !!

ما زلت أرى هذه المشكلة تحدث ونتيجة لذلك قمت بتشغيل Spyder 2.3.8 عندما أحتاج حقًا إلى الاعتماد عليه للتحديث والعمل بشكل صحيح. المشكلة هي أن هذا يتطلب matplotlib القديم الذي يحد من الأشياء الأخرى التي يمكنني العمل معها.

من أجل هذا الموضوع فقط ، بدأت في اختبار Spyder 3.2.3 (الأحدث مدعومًا بواسطة conda حتى الآن) وانتقل إلى الشكل يبدو أن المستكشف المتغير يعمل. لكنني أقسم أنني جربت على Linux و Windows بإصدارات أحدث وهي تعمل في بعض الأحيان فقط.

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

Prikers نتطلع إلى هذا! أحب أن تكون قادرًا على إبعاد الناس عن Matlab إلى Python والمصدر المفتوح باستخدام Spyder كبوابة!

sayboltm إذا كان بإمكانك الحصول على مثال بسيط قابل للتكرار ،

لدي مشكلة مماثلة مع Spyder 3.1.2 و Python 3.6. أرى متغيراتي مدرجة في مستكشف المتغيرات. ولكن إذا نقرت نقرًا مزدوجًا على متغير المصفوفة أو المصفوفة ، فلا يمكنني رؤية المصفوفة بأكملها أو المصفوفة بأكملها كما اعتدت أن أكون قادرًا على ذلك باستخدام الإصدار 2. * من Sypder. هل يمكن لأحد أن يسلط لي بعض الأضواء حول كيفية الالتفاف حول هذا من فضلك؟ شكرا جزيلا مقدما!

رسالة الخطأ التي تلقيتها: "لم يتمكن Spyder من استرداد قيمة هذا المتغير من وحدة التحكم" ، مع ظهور رسالة خطأ إضافية مفادها "فحص القيم وتعيينها أثناء تصحيح الأخطاء في وحدات تحكم IPython غير مدعوم من قبل Spyder حتى الآن". ومع ذلك فأنا على يقين من أنني أستطيع رؤية محتوى إطار البيانات بالكامل في الإصدار 2. * من Spyder.

JasperAustin هل تحاول رؤية المتغيرات أثناء تشغيل مصحح الأخطاء؟
هل مشكلتك مشابهة لهذه المشكلة؟

نعم ، Prikers ، أحاول رؤية المصفوفات في مصحح الأخطاء

تم إصلاح مشكلتك في Spyder 3.2. يرجى التحديث.

El 03/10/17 a las 15:34، JasperAustin escribió:
>

نعم ، Prikers https://github.com/prikers ، أحاول رؤية ملف
المصفوفات في المصحح

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/spyder-ide/spyder/issues/4154#issuecomment-333970000 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AAWS7SsFdQRCZ039T-4G8PguiNdDVwpsks5sopppgaJpZM4MDpNC .

شكرا ، @ ccordoba12. أنا جديد في بايثون. كيف يمكنني التحديث إلى Spyder 3.2 من 3.1.2؟

إذا كنت تستخدم Anaconda ، فأنت بحاجة إلى التشغيل في محطة نظام (cmd.exe أو Terminal.app أو xterm)

conda update spyder

إذا لم يكن كذلك ، يرجى تشغيل

pip install -U spyder

شكرا مرة أخرى @ ccordoba12 . أنا أستخدم Anaconda ، وحاولت الأمر الأول مرتين ولكن لا يزال هناك الخطأ التالي:
C: \ Users \ U608025> تحديث كوندا سبايدر
جارٍ إحضار البيانات الوصفية للحزمة ...

CondaHTTPError: HTTP لا شيء لعنوان url
انقضاء: لا شيء

حدث خطأ HTTP أثناء محاولة استرداد عنوان URL هذا.
ConnectTimeout (MaxRetryError ("HTTPSConnectionPool (host = 'repo.continuum.io' ، منفذ
= 443): تم تجاوز الحد الأقصى لإعادة المحاولات بعنوان url: /pkgs/free/win-64/repodata.json.bz2 (السبب
د بواسطة ConnectTimeoutError ( كائن ection في 0x0000000006D19A90> ، انتهت مهلة الاتصال بـ repo.continuum.io
. (مهلة الاتصال = 9.15) ')) "،) ،)

لقد هربت

تثبيت نقطة - يو سبايدر

لكن ذلك ثبت سبايدر 3.1.2 وليس 3.2. (على Ubuntu 16.04 LTS)

أهلا بالجميع !

لدي مشكلة صغيرة مع سبايدر الخاص بي. أعتذر أولاً لكتابة مشكلتي هنا! هذا ليس مهمًا ولكني أتمنى أن يساعدني أحد ^ ^
في الواقع ، عندما أفتح Spyder ، يكون لدي الكثير من المتغيرات في المستكشف مثل ScalarType ، و cast ...
هل هناك طريقة esay لمنع ظهور هذه المتغيرات؟

شكرا جزيلا !

يوجدldesmet في الزاوية العلوية اليمنى من البرنامج المساعد المتغير explorer بقائمة ترس. هناك خيارات لإخفاء بعض المتغيرات مثل:

  • المراجع الخاصة (تبدأ أسماء المتغيرات بـ _ )
  • كافة المراجع الكبيرة
  • أنواع البيانات غير المدعومة

هل هذه الخيارات تناسب احتياجاتك؟

مرحبا ! شكرا لاجابتك :)

للأسف لقد قمت بالفعل بفحص هذه المربعات. ما زلت أمتلك هذه المتغيرات في مستكشف المتغيرات عندما أفتح Spyder (مرة أخرى ، ليست مشكلة كبيرة ، أقوم بحذفها يدويًا ولكني أود التوقف عن القيام بذلك ^^)

شكرا لك مرة أخرى !

بمجرد فتح spyder (قبل تشغيل أي برنامج نصي) ، تملأ هذه المتغيرات مستكشف المتغيرات؟

نعم بالضبط ! يمكنني الانضمام إلى صورة إذا كنت تريد.

ldesmet يبدو أن وحدة تحكم Tools ) ، انقر فوق IPython console Graphics وعلامة التبويب Automatically import Pylab and Numpy modules محددًا؟ إذا كان الأمر كذلك ، فمن المحتمل أن يكون هذا هو السبب. إذا لم يكن الأمر كذلك ، فإن الأشياء الأخرى التي يجب التحقق منها هي علامة التبويب Startup و Use symbolic maths تحت Advanced Settings .

إذا لم يساعد أي من هذا ، فستكون الصورة مفيدة.

مرحبا، شكرا لإجابتك !

لقد ألغيت تحديد المربع "استيراد وحدتي Pylab و Numpy تلقائيًا" والآن لا أرى هذه المتغيرات بعد الآن! هذا يعمل بشكل مثالي!

شكرا لكما من jitseniesen :)

مرحبًا ، أنا جديد على بايثون و سبايدر ولدي spyder 3.2.4 مع تثبيت Python 3.5. لدي كود tensorflow يعمل بشكل جيد. ومع ذلك ، لدي مشاكل مع التصحيح لأنه لا يعرض أي قيم متغيرة مرتبطة بـ tensorflow في وحدة التحكم. يرجى الاطلاع على مثال "توقع" أدناه بعد تشغيل الكود في وضع التصحيح. توقع هو ناتج دالة tensorflow.

ipdb> أنا
9
ipdb> توقع

أقوم باستيراد ما يلي ؛
استيراد numpy كـ np
استيراد tensorflow مثل tf
وقت الاستيراد
استيراد مساعدة البيانات

هل هناك حل بديل لإظهار قيم متغير tensorflow في وحدة التحكم حيث أن ذلك مهم لتصحيح الأخطاء؟

شكر!

تحية طيبة!

لدي مشكلة مماثلة في مستكشف المتغيرات. أنا أستخدم Spyder 3.5. يرجى إعلامي إذا كنت أفعل أي شيء خطأ هنا.

عندما أكتب الكود أدناه ، أستطيع أن أرى welcome_str مدرجًا كما هو الحال في مستكشف المتغيرات

welcome_str='hello'
print(welcome_str)

الآن إذا كتبت نفس الكود باستخدام __name __ == "__ main__" ، فإن مستكشف المتغيرات فارغ

#Main function
def main():

    #define constants here
    welcome_str='hello'

    #program flow
    print(welcome_str)

#Main function call
if __name__=="__main__":
    main()

لقد واجهت نفس الخطأ في محاولتي لتنفيذ الكود التالي في بداية البرنامج النصي كبديل يدويًا لاستخدام٪ reset في وحدة تحكم IPython لمسح مستكشف المتغير

من IPython استيراد get_ipython
get_ipython (). magic ('reset -sf')

تصحيحه عند استيراد بعض البيانات من دليل واجهة المستخدم الرسومية

كنت أواجه هذه المشكلة أيضًا. لقد تتبعت ذلك إلى استخدام برنامج نصي لبدء تشغيل IPython. كنت أقوم ببعض التنظيف المتغير في النهاية وكان من الواضح أن del get_ipython كان يفسد الاتصال بـ Variable Explorer. يبدو أن إبقاء get_ipython في النطاق يجعله يعمل بشكل صحيح.

يبدو أن get_ipython يفسد الاتصال بـ Variable Explorer. يبدو أن الاحتفاظ بـ get_ipython في النطاق يجعله يعمل بشكل صحيح.

نعم ، get_ipython مهم جدًا ، ليس فقط لـ Spyder ولكن لـ IPython. لذا يرجى عدم إزالته.

capture
لا يتم عرض النصوص في عمود قيم clean_answer ، وكيفية حل هذه المشكلة

jagadishkt ، الرجاء فتح مشكلة جديدة حول مشكلتك بدلاً من النشر في

@ ccordoba12 شكرا. لقد ساعد

لدي نفس المشكلة مع Spyder 3.1.2 و Python 3.6. لا يتم تنفيذ الوظائف بشكل صحيح - أرى أنها تعمل ، ولكن لا يتم إرجاع أي شيء. هذا هو الحال أيضًا مع وظائف الاختبار الوهمي (مثل a + b return c).

كنت أواجه نفس المشكلة مع سبايدر 3.3.6. لقد قمت بإلغاء تثبيت numpy و spyder وإعادة تثبيتهما ثم تم حل المشكلة.

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