使用reposurgeon
并尝试扩展其功能,我面临:
reposurgeon: invalid syntax in extension function
转换为SyntaxError
execfile()
来自RepoSurgeon.do_exec()
来自exec
来电的print "Hello world"
延期。是什么赋予了?我试图execfile
的代码非常简单:
reposurgeon
我还使用过Python CLI和{{1}}并且没有任何投诉?
已使用的版本:{{1}} 3.10
答案 0 :(得分:1)
这个花了我一段时间才弄明白,这就是我在这里发帖的原因。
关键是我们试图“源”的单行代码。虽然这是完全有效的Python 2.x代码,reposurgeon
通过执行以下操作使用Python 3.x中的print
函数:
from __future__ import print_function
这导致print
要求使用括号,因为它使print
成为函数而不是语句。
显然我们在reposurgeon
的上下文中运行扩展代码,这意味着我们依赖于它定义的规则。
请参阅this document。
因此以下内容可以正常使用:
print("Hello world")