rPython и __future__ импорт

Мой скрипт на Python начинается с

from __future__ import division

В ри

library(rPython)
python.load("myscript.py")

я получил

Файл "", строка 2 SyntaxError: из будущего импорта должен произойти в начале файла

1 ответ

Я просто столкнулся с той же проблемой - очевидно, python.load() просто выполняет скрипт, загруженный из этого места, как если бы это была куча команд.

Я не уверен, по умолчанию ли это обернуто или предшествует некоторому шаблонному коду, но это так. И если бы вы перехватывали ошибки, используя rPython, он наверняка был бы выполнен в блоке try... (по крайней мере, учитывая текущий код на GitHub).

Тем не менее, использование обходного пути на основе execfile() сделало эту работу для меня:

python.exec("execfile('myscript.py')")

Другой подход, если нет необходимости выполнять код в основном блоке, импортировать модуль

python.exec("import myscript")

однако в этом немного более запутанном случае вам, вероятно, придется иметь дело с проблемами пути, как упомянуто, например, здесь.

(Возможно, было бы неплохо сообщить сопровождающим пакета об этой ситуации и о том, что она может использовать что-то лучше, чем обходной путь.)

Другие вопросы по тегам