使用reposurgeon
并试图扩展其功能,我面临着:
reposurgeon: invalid syntax in extension function
它会转换为从 RepoSurgeon.do_exec()
中的 execfile()
调用引发的 SyntaxError
扩展。是什么赋予了?我尝试 exec
的代码非常简单:
print "Hello world"
我还使用了 Python CLI 和 execfile
,没有任何提示吗?
使用版本:reposurgeon
3.10
最佳答案
这个问题花了我一段时间才弄清楚,这就是我将其发布在这里的原因。
关键确实在于我们试图“获取”的一行代码。虽然这是完全有效的 Python 2.x 代码,但 reposurgeon
使用 Python 3.x 中的 print
函数,执行以下操作:
from __future__ import print_function
这会导致 print
要求使用括号,因为它使 print
成为函数而不是语句。
显然,我们是在 reposurgeon
的上下文中运行扩展代码,这意味着我们依赖于它定义的规则。
参见this document .
因此以下内容可以正常工作:
print("Hello world")
关于python - 使用 exec 时,Reposurgeon 给我一个语法错误,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25146005/