2016-07-11 27 views
0

Wenn ich den folgenden Code auswählen und klicken Sie auf "ausgewählten Code ausführen" in Eclipse, wird es mir einen Fehler geben.Python 'unerwartete EOF beim Parsen' Eclipse pydev ausgewählten Code ausführen

class abc(object): 
    def __init__(self): 
     print 'base' 

    def run(self): 
     print 'run' 

Fehlermeldung:

class abc(object): 
    def __init__(self): 
     print 'base' 

    def run(self): 
     print 'run' 
    File "<ipython-input-22-8e1ec627fd90>", line 1 
    def run(self): 
       ^
SyntaxError: unexpected EOF while parsing 

run 

Allerdings, wenn ich den Raum zwischen den beiden Funktionen zu entfernen, dann wird es Ok laufen (siehe unten), ist dies ein Fehler in pydev? Irgendwie kann ich dieses Problem überkommen?

class abc(object): 
    def __init__(self): 
     print 'base'  
    def run(self): 
     print 'run' 

Versionen:
Eclipse-4.4.2
LiClipse 2.0.0.201504092214
Subclipse (Erforderlich) 1.10.13

Antwort

1

Ich denke, was Sie sehen, ist das Ergebnis der Verwendung der interaktiven Konsole ist führe deinen Code aus (zB: http://www.pydev.org/manual_adv_interactive_console.html).

Das Problem ist, dass wenn Sie den Code über diese Aktion an die Konsole senden, wird es keine Bearbeitung für Ihren Code, und wenn die Konsole eine Zeile mit 0-Breite sieht, wird daraus geschlossen, dass die Python Der Block ist fertig.

So gibt es einige Workarounds dafür:

  1. Sie Ihre Blöcke nicht mit der rechten trim (d.h .: verlassen Leerzeichen um den Block Einzug statt einer 0-Breite Linie).

  2. Wenn Sie nicht nur einen Teil Ihres Codes ausführen möchten, deaktivieren Sie den gesamten Code und führen Sie die gesamte Datei mit Strg + Alt + Eingabetaste aus.

  3. Den Code abwählen, in die erste Zeile gehen und den Inhalt Zeile für Zeile mit F2 an die Konsole senden (F2 wird die aktuelle Zeile senden und den Cursor in die nächste Zeile mit Inhalt verschieben und eventuell korrigieren die Einzüge, so sollte es einfach sein, den Block auszuwählen, den Sie an die Konsole senden möchten.

  4. Verwenden Sie nicht die interaktive Konsole und führen Sie einen einfachen Lauf mit F9 aus (obwohl in diesem Fall die Symbole in einer neuen nicht interaktiven Konsole nicht zur Inspektion zur Verfügung stehen).

  5. Wenn Sie mit TDD arbeiten (testgetriebene Entwicklung), dann führen Sie den Testcode mit Strg + F9 aus (siehe http://www.pydev.org/manual_adv_pyunit.html für Details) - auch in diesem Modus wird die interaktive Konsole nicht verwendet.

+0

Vielen Dank. Ich schätze die Antwort. – user97662