Python解析时的意外EOF' eclipse pydev运行选定的代码

时间:2016-07-11 04:02:22

标签: eclipse pydev liclipse

如果我选择以下代码并单击"运行所选代码"在日食中,它会给我一个错误。

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

但是,如果我删除两个函数之间的空格,那么它将运行Ok(见下文),这是pydev中的错误吗?我能以任何方式解决这个问题吗?

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

版本:
  Eclipse 4.4.2
  LiClipse 2.0.0.201504092214
  Subclipse(必填)1.10.13

1 个答案:

答案 0 :(得分:1)

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

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

因此,有一些解决方法:

  1. 不要对块进行右边修剪(即:将空格留给块缩进而不是0宽线)。

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

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

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

  5. 如果您使用TDD(测试驱动开发),则使用Ctrl + F9运行测试代码(有关详细信息,请参阅http://www.pydev.org/manual_adv_pyunit.html) - 再次,在此模式下它将不会使用交互式控制台。