Python 'unexpected EOF while parsing' eclipse pydev 运行 选定的代码

Python 'unexpected EOF while parsing' eclipse pydev run selected code

如果我select下面的代码然后在eclipse中点击"Run selected Code",它会给我一个错误。

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

    def run(self):
        print 'run'

错误信息:

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

但是,如果我删除两个函数之间的 space 那么它将 运行 好的(见下文),这是 pydev 中的错误吗?我有什么办法可以解决这个问题吗?

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

版本:
日蚀 4.4.2
LiClipse 2.0.0.201504092214
子剪辑(必需)1.10.13

我认为您看到的是使用交互式控制台 运行 您的代码的结果(即:http://www.pydev.org/manual_adv_interactive_console.html)。

问题是,当您通过该操作将代码发送到控制台时,它不会对您的代码进行任何编辑,并且当控制台看到宽度为 0 的行时,它会得出结论: Python 块已完成。

因此,有一些解决方法:

  1. 不要右移-trim 你的块(即:在块缩进中留出空格而不是 0 宽度行)。

  2. 如果您不想 运行 只删除一部分代码,请删除 select 所有代码并使用 Ctrl+Alt+Enter 执行整个文件。

  3. Deselect 代码,转到第一行并使用 F2 将内容逐行发送到控制台(F2 将发送当前行并将移动光标到包含内容的下一行,甚至可以修复缩进,因此,应该很容易 select 将要发送到控制台的块)。

  4. 不要使用交互式控制台并使用 F9 进行简单的 运行(尽管在这种情况下,因为它将在新的非交互式控制台中启动,所以符号不会'之后无法检查)。

  5. 如果您使用 TDD(测试驱动开发),那么 运行 使用 Ctrl+F9 的测试代码(详见 http://www.pydev.org/manual_adv_pyunit.html)——同样,在此模式它不会使用交互式控制台。