使用reposurgeon
并尝试扩展其功能,我面临:
reposurgeon: invalid syntax in extension function
这转换为从调用中SyntaxError
引发的扩展。是什么赋予了?我想要的代码很简单:execfile()
RepoSurgeon.do_exec()
exec
print "Hello world"
我也使用了 Python CLI,execfile
并且没有任何抱怨?
使用版本:reposurgeon
3.10
使用reposurgeon
并尝试扩展其功能,我面临:
reposurgeon: invalid syntax in extension function
这转换为从调用中SyntaxError
引发的扩展。是什么赋予了?我想要的代码很简单:execfile()
RepoSurgeon.do_exec()
exec
print "Hello world"
我也使用了 Python CLI,execfile
并且没有任何抱怨?
使用版本:reposurgeon
3.10
这个我花了一段时间才弄清楚,这就是我在这里发布它的原因。
关键确实在我们试图“获取”的单行代码中。虽然这是完全有效的 Python 2.x 代码,但通过执行以下操作reposurgeon
使用print
Python 3.x 中的函数:
from __future__ import print_function
这导致print
需要使用括号,因为它是print
一个函数而不是一个语句。
显然我们在 的上下文中运行我们的扩展代码reposurgeon
,这意味着我们依赖于它定义的规则。
请参阅此文档。
因此,以下将正常工作:
print("Hello world")