execfile
執行在本地命名空間中的腳本。你可以簡單地在現有的呼叫值分配給sys.argv
到exec
:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec(
"import sys\n"
+"sys.argv = ['Foo', 'Bar']");
interpreter.execfile("J:/test.py");
當腳本是:
import sys
print(sys.argv)
打印:
['Foo', 'Bar']
我看着你的評論的問題,它看起來像你需要設置python.path
在Properties
對象,然後您傳遞給PythonInterpreter.initialize
。你也可以用這個來傳遞參數:
Properties p = new Properties();
p.setProperty("python.path", "J:/WS/jython"); // Sets the module path
PythonInterpreter.initialize(System.getProperties(), p, new String[]{ "Foo", "Bar" });
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("J:/WS/jython/main.py");
謝謝@Jorn Vernee如果我的Python腳本常量有幾個文件,那麼我需要以某種方式導入它們嗎? – Michael
@Michael我更新了答案。 –
謝謝@Jorn的幫助! – Michael