我正在尝试嵌入著名的速度测试-cli.py文件(速度测试.net在我的C应用程序中,这样我就可以在控制台或texbox中显示输出。在
到目前为止,我试着:
class PythonSpeedTest
{
private String path = @"c:\pythonSpeedTest.py";
public void runPython() {
var py = Python.CreateEngine();
var scope = py.CreateScope();
var paths = py.GetSearchPaths();
paths.Add(@"C:\Program Files (x86)\IronPython 2.7\Lib");
py.SetSearchPaths(paths);
MemoryStream ms = new MemoryStream();
py.Runtime.IO.SetOutput(ms, new StreamWriter(ms));
try
{
var output = py.ExecuteFile(path, scope);
}
catch (Exception ex)
{
Console.WriteLine("Python collapsed" + ex.Message);
}
Thread.Sleep(5000);
var sr = new StreamReader(ms);
var result = sr.ReadToEnd();
Console.WriteLine(result);
}
}
应用程序似乎在运行脚本,但是 1它不会等到它完成,而且 2我不能让它显示python的任何输出
理想情况下,我需要能够等到python完成测试;捕获结果并将其输出到控制台或文本框中,或者如果我可以只捕获所有的输出,那就太棒了。在
谢谢你的帮助!在
好吧!!!经过几天的努力,我终于弄明白了。首先,我不需要设置任何流就可以从python获得输出。代码如下:
重要的是为python引擎设置路径。主要的问题是,我一直在按play按钮在canopy中运行脚本(抱歉,我是个笨蛋),但在脚本本身,我从来没有简单地调用main()。一旦我添加了它-这个脚本在我的C应用程序下执行得很好。现在获取数据会很容易。在
希望这能给别人省点时间!在
相关问题 更多 >
编程相关推荐