我目前有一个设置,其中我使用C#来执行Python脚本。它还可以获取脚本通常在返回的命令行中输出的内容,以便在我的应用程序中使用。 (由于某种原因除了错误消息)问题是当脚本到达打开.json文件的行时,脚本执行会神秘地停止。我不会粘贴脚本,因为它相当大,但我通过添加日志来确定它停止的行。这是一行:
featuresBody = open("features.json")
我已经验证过Python脚本在我在常规命令行中执行时它会通过这一点,但在从C#执行时会停止。这是运行脚本的C#代码:
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = @"C:\Python27\python.exe";
start.Arguments = ltrDirectory + "/train_and_upload_demo_model.py -c " + ltrDirectory + "/config.json";
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
System.Diagnostics.Debug.WriteLine(result);
}
}
这个逻辑正在拾取脚本并在开始时运行它就好了,但只是在我上面提到的那一行失败了。我无法获得有关错误的详细信息,因为无论出于何种原因错误消息都不会返回到C#,我无法在命令行中复制该问题,因为相同的命令在那里工作。
为什么打开.json文件的任何想法都能正常工作,但从C#执行时却没有??