3

我在 Eclipse 中使用 python 2.7.3 PyDev。来自搬运工词干分析器源代码

if __name__ == '__main__':
    p = PorterStemmer()
    if len(sys.argv) > 1:
        for f in sys.argv[1:]:
            infile = open(f, 'r')
            while 1:
                output = ''
                word = ''
                line = infile.readline()
                if line == '':
                    break
                for c in line:
                    if c.isalpha():
                        word += c.lower()
                    else:
                        if word:
                            output += p.stem(word, 0,len(word)-1)
                            word = ''
                        output += c.lower()
                print output    # ---- ERROR
            infile.close()

我得到错误

. "^=" ... "<<=" ... ">>=" ... "**=" ... "or" ... "and" ... "not" ... "是”...“在”...“如果”...“;” ……”,……


4

3 回答 3

5

检查您使用的 Python 语法版本(不记得是全局设置还是每个项目设置)。看起来你的语法是为 Py3k 设置的,print现在它是一个函数而不是一个语句。

编辑:我认为该代码没有理由不能正常运行,前提是 PyDev 没有得到它的全部帮助 - 如果你不能直接从命令行调用的 python.exe 运行它,实际上可能有一些鬼鬼祟祟的我错过了糟糕的语法。

于 2013-02-02T04:19:44.580 回答
3

尝试,print作为一个函数......

print(output)

另外,请检查您的 Eclipse 设置以查看您使用的是哪个 python 版本...

于 2013-02-02T04:25:55.563 回答
2

所以问题是 PyDev 有一个在编辑器中使用的内置解释器,但在运行代码时它使用外部解释器。虽然我的计算机上只安装了 python 2.7.3 并且由 eclipse pydev 自动配置,但内置解释器设置为 3.0。此外,内置解释器设置在 PyDev 下的选项菜单中不可用,而是被隐藏了。当在文件资源管理器中右键单击项目标题并选择属性时,会出现另一个解释器设置。此外,需要关闭所有编辑器窗口并重新打开它们才能使用更新的设置。

于 2013-02-02T21:26:17.753 回答