1

使用reposurgeon并尝试扩展其功能,我面临:

reposurgeon: invalid syntax in extension function

这转换为从调用中SyntaxError引发的扩展。是什么赋予了?我想要的代码很简单:execfile()RepoSurgeon.do_exec()exec

print "Hello world"

我也使用了 Python CLI,execfile并且没有任何抱怨?

使用版本:reposurgeon3.10

4

1 回答 1

1

这个我花了一段时间才弄清楚,这就是我在这里发布它的原因。

关键确实在我们试图“获取”的单行代码中。虽然这是完全有效的 Python 2.x 代码,但通过执行以下操作reposurgeon使用printPython 3.x 中的函数:

from __future__ import print_function

这导致print需要使用括号,因为它是print一个函数而不是一个语句。

显然我们在 的上下文中运行我们的扩展代码reposurgeon,这意味着我们依赖于它定义的规则。

请参阅此文档

因此,以下将正常工作:

print("Hello world")
于 2014-08-05T18:36:49.317 回答