Spyder: Variablen werden im Variablen-Explorer nicht angezeigt (Python 3.6)

Erstellt am 16. Feb. 2017  ·  46Kommentare  ·  Quelle: spyder-ide/spyder

Beschreibung

Welche Schritte werden das Problem reproduzieren?

  1. Öffnen Sie Spyder
  2. Schreiben Sie Code mit Variablen (sogar eine Konstante)
  3. Führen Sie den Code aus, und Variablen werden nicht angezeigt, nicht einmal die Konstante 'epsilon'.

Was ist die erwartete Leistung?
Ich erwarte eine Ausgabe im Variablen-Explorer. Dies geschieht sowohl unter Spyder 3.1.2 Linux als auch unter Windows.

Bitte geben Sie unten weitere Informationen an
Hier ist mein Code, der versucht, die Gaußsche Eliminierung zu implementieren:

#!/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.')

Version und Hauptkomponenten

  • Spyder-Version: 3.1.2
  • Python-Version: 3.6.0
  • Qt-Versionen: 5.6.2, PyQt5 5.6 unter Linux

Abhängigkeiten

numpy wird verwendet

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

Hilfreichster Kommentar

Im Variablen-Explorer gibt es eine Option namens Exclude unsupported types , die bei Deaktivierung alle Variablentypen darauf anzeigt.

Alle 46 Kommentare

Kommt es nur in Python 3.6 vor?

Soweit ich das beurteilen kann, ja. Ich hatte diese Probleme mit Python 3.5 und Spyder 2.3.8 auf meinem anderen Windows 7-Computer nicht.

Bitte aktualisieren Sie auf Spyder 3.1.3 und versuchen Sie es erneut. Unsere Tests laufen in Python 3.6 einwandfrei und erkennen, ob Objekte im Variablen-Explorer angezeigt werden.

Ich glaube, ich habe auch dieses Problem und ich verwende 3.1.3 unter Ubuntu. Ipdb berichtet ...

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

Ich konnte die Funktion des Variablen-Explorers anhand dieser einfachen Datei sehen ...

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

... und es hat das substitutions Diktat korrekt visualisiert

Wenn Sie jedoch interaktiv mit dieser Datei arbeiten ...
https://github.com/cefn/avatap/blob/6ad61cb3b8e198acae1caa6f187726fea4834b30/python/test.py
... wird im Fenster "Variablen-Explorer" auch ab der ersten Zeile des ersten lokalen Imports nichts angezeigt.

Der interaktive ipdb-Bereich kann jedoch tatsächlich Variablen untersuchen, wenn diese Datei ausgeführt wird, z. B. an einem Spyder-Haltepunkt in Zeile 28 in test.py. Ich kann ...

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'])

... während im Variablen-Explorer überhaupt nichts angezeigt wird.

Ich habe dafür gesorgt, dass alle Spyder- und Spyder3-Ubuntu-Pakete über apt-get purge und dann über Pip wie ...

sudo -H pip3 install --update spyder

Um doppelt sicher zu sein, dass nichts Seltsames los war, rannte ich dann ...

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

... um alle pip3-Pakete auf den neuesten Stand zu bringen, aber Spyder's Variable Explorer kooperiert immer noch nicht.

Ok, wenn es bei diesem Problem um das Debuggen geht, dann ist das ein Fehler und wurde in Problem Nr. 3711 gemeldet.

Es wird in Spyder 3.2 behoben.

Hoppla, ich denke, wenn ich genauer hinschaue, hat das OP den Code möglicherweise nicht wie angenommen durch den Debugger ausgeführt, sodass ich diesen Fehler möglicherweise fälschlicherweise entführt habe. Ich hatte nicht bemerkt, dass es einen Variablen-Viewer gibt, der den Status von 'Modul'-Symbolen am Ende eines Laufs anzeigt, also habe ich nur angenommen, dass das beschriebene Verhalten mit dem Debuggen verbunden ist. Mein Fehler. Vielleicht kann das OP klarstellen.

@ ccordoba12 Gibt es eine Pull-Anfrage, bei der ich einen Test für diese Funktion gegen den erwarteten Fix durchführen kann, um in Spyder 3.2 zu landen? Ich habe versucht, Ihren Zweig debugger-improvements in spyder: head gemäß https://github.com/cefn/spyder/pull/1 zusammenzuführen, aber dies ändert nichts am Verhalten des Variablen-Explorers unter dem beschriebenen Debug-Szenario ( obwohl die IDE stabil und ansonsten funktionsfähig erscheint).

Vielleicht ist es eine 3.2 Wunschliste, um es zu lösen, und der Code, um es zu lösen, wurde noch nicht geschrieben? Lassen Sie mich wissen, ob Live-Tests nützlich sind.

Im Variablen-Explorer gibt es eine Option namens Exclude unsupported types , die bei Deaktivierung alle Variablentypen darauf anzeigt.

Ja @cefn Dieses Problem trat auf, wenn nicht im Debugger. Die Variablen sollten am Ende aktualisiert werden, sind es aber nicht, wenn sie überhaupt angezeigt werden. Der Debugger scheint die meiste Zeit zu funktionieren. Ich kann sie anzeigen lassen, wenn ich den Debugger ausführe, aber nachdem sie nicht mit nachfolgenden Läufen aktualisiert wurden. Dies sind unterstützte Typen wie native Python-Typen (Zeichenfolge, Int, Liste usw.). Vielen Dank, dass Sie sich damit befasst haben

Ich wollte mich nur wieder einschalten und sagen, dass die Variablen in Spyder 3.1.3 unter Linux jetzt einwandfrei angezeigt werden, wenn die folgende Konfiguration in einer XML-Datei einer virtuellen Umgebung verwendet wird:

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

Ich habe die Vermutung, dass die Version von QT, die ich zuvor ausgeführt habe, möglicherweise mit dem Problem zusammenhängt. Ich hatte viele Probleme mit QT für Python mit anderen Projekten, die ich erst kürzlich aussortiert habe.

Bearbeiten: Github-Link, anstatt die gesamte yml-Datei einzufügen

Keine Ursache. Natürlich werden nach vielen Tests, sobald ich das poste, die Variablen nach einem Lauf im Variablen-Explorer nicht mehr angezeigt. Nun, da ist meine Konfiguration. Ich hoffe ihr könnt das beheben, denn das ist zweifellos meine Lieblingsfunktion und der Grund, warum ich Spyder benutze.

image

Ich hatte das gleiche Problem, sobald ich ein Upgrade von Spyder 3.1.3 auf Spyder 3.1.4 durchgeführt habe. Beachten Sie, dass unter Extras / Einstellungen / Variablen-Explorer / Autorefresh ein Kontrollkästchen vorhanden ist, das möglicherweise aktiviert werden muss (meins war nach dem Upgrade deaktiviert).

Ich habe dieses Kontrollkästchen untersucht und es wurde deaktiviert, aber zu meiner großen Enttäuschung konnte dieses scheinbar zeitweise auftretende Problem nicht behoben werden, wenn ich es überprüfte und Spyder neu startete. Das ist ziemlich rätselhaft.

Wurde dies behoben? Ich führe meinen Code erfolgreich aus, kann danach jedoch keine der Variablen im Variablen-Explorer anzeigen. Warum ist das? Spyder 3.2.0 mit Python 3.5.3.

Ich habe hier das gleiche Problem und ruiniere Spyder Version: 3.1.4
Datentypen können nicht angezeigt werden !!
und bin neu hier !!
hilf mir es zu lösen. :) :)
capture

Danke @vishalnadagiri. Derzeit werden Objekt-Arrays (mit dtype=object , dh mit nicht numerischen Daten) nicht unterstützt. Es gibt bereits eine laufende PR (# 5260), um diese Funktionalität hinzuzufügen. Es wird in einer zukünftigen Version verfügbar sein.

Inzwischen:

  • Sie können Ihre Daten X anzeigen, wenn Sie sie als DataFrame behalten (entfernen Sie einfach .values in Ihrer Zeile 10).
  • oder Sie können es als array anzeigen, wenn Sie die nicht numerischen Daten entfernen (die erste Spalte in Ihrem Fall).

Vielen Dank an @Prikers für die Hilfe. Ich musste nur den DataFrame anzeigen, indem ich .values Es hat gut funktioniert und kann den DataFrame anzeigen!

Ich habe immer noch gesehen, dass dieses Problem auftritt, und als Ergebnis starte ich Spyder 2.3.8, wenn ich wirklich darauf zählen muss, um zu aktualisieren und ordnungsgemäß zu funktionieren. Das Problem ist, dass eine alte Matplotlib erforderlich ist, die einschränkt, mit was ich sonst noch arbeiten kann.

Nur um dieses Threads willen habe ich begonnen, Spyder 3.2.3 (zuletzt unterstützt von conda) zu testen und herauszufinden, dass der Variablen-Explorer zu funktionieren scheint. aber ich schwöre, ich habe es unter Linux und Windows mit neueren Versionen versucht und es funktioniert nur manchmal.

Das Schlimmste ist, wenn es zuerst funktioniert, mit Variablen gefüllt wird (Sie denken also, dass es funktioniert), dann aufhört zu arbeiten, damit die alten Daten dort bleiben und Sie sich fragen, warum Ihre Variablen nicht richtig zugewiesen werden usw., aber es ist eigentlich der Variablen-Explorer Sterben. In diesem Fall überprüfe ich einen bekannten unterstützten Typ (int, string) in die iPython-Konsole und stelle sicher, dass er nicht zum Variablen-Explorer hinzugefügt wird. Ich bin froh, hier einige Aktivitäten zu sehen. Ich werde es noch einmal versuchen, da ich den Variablen-Explorer liebe. Lieblingsfunktion von Spyder auf jeden Fall!

@Prikers Ich freue mich darauf! Ich liebe es, Leute von Matlab weg in Python und Open Source zu bringen, indem ich Spyder als Gateway benutze!

@sayboltm Wenn Sie ein reproduzierbares einfaches Beispiel haben können, bin ich bereit zu untersuchen!

Ich habe ein ähnliches Problem mit Spyder 3.1.2 und Python 3.6. Ich sehe meine Variablen im Variablen-Explorer aufgelistet. Wenn ich jedoch auf das Array oder die Matrixvariable doppelklicke, kann ich nicht das gesamte Array oder die gesamte Matrix sehen, wie ich es früher mit der 2. * Version von Sypder konnte. Kann mir jemand etwas Licht ins Dunkel bringen, wie ich das umgehen kann? Vielen Dank im Voraus!

Die Fehlermeldung, die ich erhalten habe: "Spyder konnte den Wert dieser Variablen nicht von der Konsole abrufen", mit der zusätzlichen Fehlermeldung "Überprüfen und Festlegen von Werten beim Debuggen in IPython-Konsolen wird von Spyder noch nicht unterstützt". Trotzdem bin ich mir ziemlich sicher, dass ich den Inhalt des gesamten Datenrahmens in der 2. * Version von Spyder sehen konnte.

@JasperAustin Versuchen Sie, die Variablen zu sehen, während Sie den Debugger
Ist Ihr Problem diesem Problem ähnlich?

Ja, @Prikers , ich versuche, die Arrays im Debugger zu sehen

Ihr Problem wurde in Spyder 3.2 behoben. Bitte aktualisieren.

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

Ja, @Prikers https://github.com/prikers , ich versuche das zu sehen
Arrays im Debugger

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/spyder-ide/spyder/issues/4154#issuecomment-333970000 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AAWS7SsFdQRCZ039T-4G8PguiNdDVwpsks5sopppgaJpZM4MDpNC .

Danke, @ ccordoba12. Ich bin neu in Python. Wie kann ich von 3.1.2 auf Spyder 3.2 aktualisieren?

Wenn Sie Anaconda verwenden, müssen Sie in einem Systemterminal (cmd.exe, Terminal.app oder xterm) ausführen.

conda update spyder

Wenn nicht, bitte laufen

pip install -U spyder

Nochmals vielen Dank
C: \ Users \ U608025> Conda Update Spyder
Paket-Metadaten abrufen ...

CondaHTTPError: HTTP Keine Keine für URL
Abgelaufen: Keine

Beim Versuch, diese URL abzurufen, ist ein HTTP-Fehler aufgetreten.
ConnectTimeout (MaxRetryError ("HTTPSConnectionPool (host = 'repo.continuum.io', Port)
= 443): Maximale Wiederholungsversuche mit URL überschritten: /pkgs/free/win-64/repodata.json.bz2 (Ursache
d von ConnectTimeoutError ( ection object at 0x0000000006D19A90>, 'Zeitüberschreitung bei Verbindung zu repo.continuum.io
. (Verbindungszeitlimit = 9,15) ')) ",),)

ich bin gerannt

pip install -U spyder

Aber das installierte Spyder 3.1.2, nicht 3.2. (Unter Ubuntu 16.04 LTS)

Hallo allerseits!

Ich habe ein kleines Problem mit meinem Spyder. Ich entschuldige mich zuerst, um mein Problem hier zu schreiben! Das ist nicht so wichtig, aber ich wünschte, jemand könnte mir helfen ^^
Wenn ich Spyder öffne, habe ich im Explorer viele Variablen wie ScalarType, cast ect ...
Gibt es eine Möglichkeit zu verhindern, dass diese Variablen angezeigt werden?

Vielen Dank !

@ldesmet in der oberen rechten Ecke des Variablen-Explorer-Plugins befindet sich ein Zahnradmenü. Dort gibt es Optionen zum Ausblenden einiger Variablen wie:

  • Private Referenzen (Variablennamen beginnend mit _ )
  • Alle Großbuchstaben
  • Nicht unterstützte Datentypen

Passen diese Optionen zu Ihren Anforderungen?

Hallo ! Vielen Dank für Ihre Antwort :)

Leider habe ich diese Kästchen bereits angekreuzt. Ich habe diese Variablen immer noch im Variablen-Explorer, wenn ich Spyder öffne (wieder keine große Sache, ich lösche sie nur manuell, aber ich möchte damit aufhören ^^)

Danke noch einmal !

Sobald Sie spyder öffnen (bevor Sie ein Skript ausführen), füllen diese Variablen den Variablen-Explorer?

Ja genau ! Ich kann mich einem Bild anschließen, wenn Sie wollen.

@ldesmet Es sieht so aus, als würde die IPython-Konsole beim Öffnen Code ausführen und möglicherweise numpy importieren. Können Sie Ihre Einstellungen in Spyder öffnen (im Menü Tools ), auf IPython console und auf die Registerkarte Graphics klicken und prüfen, ob Automatically import Pylab and Numpy modules aktiviert ist? Wenn ja, ist das wahrscheinlich die Ursache. Wenn nicht, sollten Sie auch die Registerkarte Startup und Use symbolic maths unter Advanced Settings überprüfen.

Wenn nichts davon hilft, wäre ein Bild nützlich.

Hallo danke für deine Antwort!

Ich habe gerade das Kontrollkästchen "Pylab- und Numpy-Module automatisch importieren" deaktiviert und sehe diese Variablen jetzt nicht mehr! Das funktioniert perfekt!

Vielen Dank euch beiden @Prikers und @jitseniesen :)

Hallo, ich bin neu in Python und Spyder und ich habe Spyder 3.2.4 mit Python 3.5 installiert. Ich habe einen Tensorflow-Code, der gut läuft. Ich habe jedoch Probleme mit dem Debuggen, da keine mit dem Tensorflow verbundenen Variablenwerte in der Konsole angezeigt werden. Nach dem Ausführen des Codes im Debug-Modus finden Sie unten ein Beispiel für "Vorhersagen". 'Vorhersagen ist die Ausgabe einer Tensorflow-Funktion.

ipdb> i
9
ipdb> vorhersagen

Ich importiere Folgendes;
importiere numpy als np
Tensorflow als tf importieren
Importzeit
importiere data_helpers

Gibt es eine Problemumgehung, um die Tensorflow-Variablenwerte in der Konsole anzuzeigen, da dies für das Debuggen wichtig ist?

Vielen Dank!

Schöne Grüße!

Ich habe ein ähnliches Problem im Variablen-Explorer. Ich benutze Spyder 3.5. Bitte lassen Sie mich wissen, wenn ich hier etwas falsch mache.

Wenn ich den folgenden Code schreibe, kann ich welcome_str wie im Variablen-Explorer aufgelistet sehen

welcome_str='hello'
print(welcome_str)

Wenn Sie nun denselben Code mit __name __ == "__ main__" schreiben, ist der Variablen-Explorer leer

#Main function
def main():

    #define constants here
    welcome_str='hello'

    #program flow
    print(welcome_str)

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

Ich habe den gleichen Fehler bei meinem Versuch festgestellt, den folgenden Code am Anfang des Skripts als Alternative zur manuellen Verwendung von% reset in der IPython-Konsole zum Löschen des Variablen-Explorers zu implementieren

aus IPython importiere get_ipython
get_ipython (). magic ('reset -sf')

Debuggen beim Importieren einiger Daten aus dem GUI-Handbuch

Ich hatte auch dieses Problem. Ich habe es auf die Verwendung eines IPython-Startskripts zurückgeführt. Ich habe am Ende einige Variablen bereinigt und del get_ipython anscheinend die Verbindung zum Variablen-Explorer ruiniert. Wenn Sie get_ipython im Gültigkeitsbereich belassen, scheint dies ordnungsgemäß zu funktionieren.

get_ipython hat anscheinend die Verbindung zum Variablen-Explorer ruiniert. Wenn Sie get_ipython im Gültigkeitsbereich belassen, scheint dies ordnungsgemäß zu funktionieren.

Ja, get_ipython ist sehr wichtig, nicht nur für Spyder, sondern auch für IPython. Also bitte nicht entfernen.

capture
Die Texte werden nicht in der Wertespalte von clean_answer angezeigt, wie dies behoben werden kann

@jagadishkt , bitte öffnen Sie eine neue Ausgabe zu Ihrem Problem, anstatt alte und geschlossene zu veröffentlichen. Bitte posten Sie auch einen einfachen Code, mit dem wir Ihren Fehler reproduzieren können.

@ ccordoba12 danke. Es half

Ich habe das gleiche Problem mit Spyder 3.1.2 und Python 3.6. Funktionen werden nicht richtig ausgeführt - ich sehe sie laufen, aber nichts wird zurückgegeben. Dies ist auch bei Dummy-Testfunktionen der Fall (wie a + b return c).

Ich hatte das gleiche Problem mit Spyder 3.3.6. Ich habe numpy, spyder deinstalliert und beide neu installiert, dann ist das Problem behoben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen