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")
Другие вопросы по тегам