我的python脚本以
from __future__ import division
在 RI 做
library(rPython)
python.load("myscript.py")
我明白了
文件“”,第 2 行语法错误:来自未来的导入必须出现在文件的开头
我刚刚遇到了同样的问题——显然 python.load() 只是执行从该位置加载的脚本,就好像它是一堆命令一样。
我不确定默认情况下它是否以某种方式包装或以一些样板代码开头,但似乎如此。而且,如果您要使用 rPython 捕获错误,它肯定会在 try... 块中执行(至少考虑到 GitHub 上的当前代码)。
但是,使用基于 execfile() 的解决方法为我完成了这项工作:
python.exec("execfile('myscript.py')")
另一种方法是,如果不需要在主块中执行代码,则导入模块
python.exec("import myscript")
但是,在这种稍微复杂的情况下,您可能必须处理路径问题,如此处所述。
(让包维护者知道这种情况可能是个好主意,并且它可以使用比解决方法更好的东西。)