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")
однако в этом немного более запутанном случае вам, вероятно, придется иметь дело с проблемами пути, как упомянуто, например, здесь.
(Возможно, было бы неплохо сообщить сопровождающим пакета об этой ситуации и о том, что она может использовать что-то лучше, чем обходной путь.)