Reposurgeon дает мне SyntaxError при использовании exec, почему?
С помощью reposurgeon
и, пытаясь расширить его функциональность, я сталкиваюсь с:
reposurgeon: invalid syntax in extension function
что переводится как SyntaxError
расширение поднято из execfile()
вызывать RepoSurgeon.do_exec()
, Что дает? Код, который я пытаюсь exec
так же просто, как:
print "Hello world"
Я также использовал Python CLI и execfile
а нареканий нет вообще?
Используемая версия: reposurgeon
3,10
1 ответ
Это заняло у меня некоторое время, чтобы понять, поэтому я размещаю это здесь.
Ключ действительно в единственной строке кода, которую мы пытаемся "найти". Хотя это совершенно правильный код Python 2.x, reposurgeon
использует print
функционировать из Python 3.x, выполнив:
from __future__ import print_function
Что приводит к print
требовать использования скобок, так как это делает print
функция вместо заявления.
Очевидно, мы запускаем наш код расширения в контексте reposurgeon
, что означает, что мы зависим от правил, которые он определяет.
Смотрите этот документ.
Следовательно, следующее будет работать нормально:
print("Hello world")