2012-06-01 122 views
3

如何將命令行參數從我的C#應用​​程序傳遞給IronPython 2.x? Google只返回關於如何使用Iron Python 1.x來完成的結果。將命令行參數從C#應用程序傳遞給IronPython?

static void Main(string[] args) 
{ 
    ScriptRuntime scriptRuntime = IronPython.Hosting.Python.CreateRuntime(); 
    // Pass in script file to execute but how to pass in other arguments in args? 
    ScriptScope scope = scriptRuntime.ExecuteFile(args[0]); 
} 
+1

解釋並解決1.x的不2.x的工作嗎? –

+0

1.x使用scriptEngine.Sys.argv,它在2.x中被刪除了。 – Danielb

回答

4

您可以通過下面的C#代碼中設置sys.argv中:

static void Main(string[] args) 
{ 
    var scriptRuntime = Python.CreateRuntime(); 
    var argv = new List(); 
    args.ToList().ForEach(a => argv.Add(a)); 
    scriptRuntime.GetSysModule().SetVariable("argv", argv); 
    scriptRuntime.ExecuteFile(args[0]); 
} 

具有以下python腳本

import sys 
for arg in sys.argv: 
    print arg 

,並呼籲像

Test.exe SomeScript.py foo bar 
的exe

給你輸出

SomeScript.py 
foo 
bar 

另一個選項是經過準備的選項Python.CreateRuntimethis answer

+0

偉大的工作,感謝回答:) – Danielb

相關問題