Reposurgeon在使用exec时给我一个SyntaxError,为什么?

时间:2014-08-05 18:36:49

标签: python reposurgeon

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

reposurgeon: invalid syntax in extension function

转换为SyntaxError execfile()来自RepoSurgeon.do_exec()来自exec来电的print "Hello world" 延期。是什么赋予了?我试图execfile的代码非常简单:

reposurgeon

我还使用过Python CLI和{{1}}并且没有任何投诉?

已使用的版本:{{1}} 3.10

1 个答案:

答案 0 :(得分:1)

这个花了我一段时间才弄明白,这就是我在这里发帖的原因。

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

from __future__ import print_function

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

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

请参阅this document

因此以下内容可以正常使用:

print("Hello world")