如何执行并返回脚本结果 python 在 c#?
如何执行并返回脚本的结果 python 在 c#?
我正在尝试启动脚本 python 来自我的控制器。
我有 python.exe setup 在使用该命令创建的虚拟环境文件夹中
.
因此,只需用于测试目的,我就可以希望从我的脚本返回结果 phython:
并在我的申请表中显示它 asp.net mvc.
我有一个功能 run_cmd 来自连接的
https://coderoad.ru/11779143/
.
我试图为强制交互模式添加一个选项i,并调用 process.WaitForExit//, 但不成功。
看起来 myscript.py 它永远不会有效。 但我没有犯有任何错误,只是我演示文稿中的空变量。
编辑:
我试图简化上述所有,因为我认为解释并获得答案会更容易。 最后,我真的需要使用一个名为的包 "nameparser" 并保持传输的参数的结果 name 在数据库中。 但如果我只能力量 run_cmd 返回字符串,我想我可以照顾 rest 从她。 这就是我认为这一点的原因 rest api 和 IronPython, 在评论中提到,这里可能无法为我工作。
我正在尝试启动脚本 python 来自我的控制器。
我有 python.exe setup 在使用该命令创建的虚拟环境文件夹中
virtualenv
.
因此,只需用于测试目的,我就可以希望从我的脚本返回结果 phython:
# myscript.py
print "test"
并在我的申请表中显示它 asp.net mvc.
我有一个功能 run_cmd 来自连接的
https://coderoad.ru/11779143/
.
我试图为强制交互模式添加一个选项i,并调用 process.WaitForExit//, 但不成功。
namespace NpApp.Controllers
{
public class HomeController : Controller
{
public ActionResult Index/string returnUrl/
{
ViewBag.ReturnUrl = returnUrl;
ViewBag.textResult = run_cmd/"-i C:/path/to/virtualenv/myscript.py", "Some Input"/;
return View//;
}
private string run_cmd/string cmd, string args/
{
ProcessStartInfo start = new ProcessStartInfo//;
start.FileName = @"C:/path/to/virtualenv/Scripts/python.exe";
start.CreateNoWindow = true;
start.Arguments = string.Format/"{0} {1}", cmd, args/;
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using /Process process = Process.Start/start//
{
using /StreamReader reader = process.StandardOutput/
{
string result = reader.ReadToEnd//;
//Console.Write/result/;
process.WaitForExit//;
return result;
}
}
}
}
}
看起来 myscript.py 它永远不会有效。 但我没有犯有任何错误,只是我演示文稿中的空变量。
编辑:
我试图简化上述所有,因为我认为解释并获得答案会更容易。 最后,我真的需要使用一个名为的包 "nameparser" 并保持传输的参数的结果 name 在数据库中。 但如果我只能力量 run_cmd 返回字符串,我想我可以照顾 rest 从她。 这就是我认为这一点的原因 rest api 和 IronPython, 在评论中提到,这里可能无法为我工作。
没有找到相关结果
已邀请:
1 个回复
冰洋
赞同来自:
这真的很有帮助:
这显示了错误 python 并输出输出区域 Visual Studio.