execfile
は、ローカルネームスペースでスクリプトを実行します。あなたは、単にexec
への呼び出しの前にsys.argv
に値を割り当てることができます:
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スクリプトがいくつかのファイルをconstする場合は、何とかそれらをインポートする必要がありますか? – Michael
@Michael私は答えを更新しました。 –
ありがとうございました。 – Michael