当前位置:   article > 正文

C#通过Process调用Python脚本_使用process调用python

使用process调用python

 visual studio 2022

python 3.10.11

  1. using Microsoft.Scripting.Hosting;
  2. using IronPython.Hosting;
  3. using System.Windows.Forms.Design;
  4. namespace JHCamera3D.Helper.Python
  5. {
  6. public class RunPythonHelper
  7. {
  8. public static string ExecPython()
  9. {
  10. string FileName = System.AppDomain.CurrentDomain.BaseDirectory + "PythonScript/pythonTest.py";
  11. string pm = "pm";
  12. // 创建进程对象并设置要运行的命令及参数
  13. var process = new Process();
  14. process.StartInfo.WorkingDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
  15. process.StartInfo.FileName = "python.exe"; // python 安装路径或者添加到系统 PATH 变量后直接写"python"
  16. process.StartInfo.Arguments = $"-u {FileName} {pm}"; // 指定要运行的 Python 脚本文件名(包括完整路径)
  17. // 隐藏控制台窗口
  18. process.StartInfo.CreateNoWindow = true;
  19. process.StartInfo.UseShellExecute = false;
  20. // 重定向输入、输出和错误流
  21. process.StartInfo.RedirectStandardInput = true;
  22. process.StartInfo.RedirectStandardOutput = true;
  23. process.StartInfo.RedirectStandardError = true;
  24. // 开始进程
  25. process.Start();
  26. // 等待进程结束
  27. process.WaitForExit();
  28. // 获取标准输出结果
  29. string output = process.StandardOutput.ReadToEnd();
  30. Console.WriteLine(output);
  31. return output;
  32. }
  33. }
  34. }

 Python脚本pythonTest.py

  1. #import open3d as o3d
  2. #import numpy as np
  3. #import matplotlib.pyplot as plt
  4. import copy
  5. import os
  6. import sys
  7. #import open3d.core as o3c
  8. #print(o3c)
  9. def Test(msg):
  10. #logger.debug(msg)
  11. #return ''
  12. #print('')
  13. return f"Hello {msg}"
  14. aa=Test("easyboot ")
  15. print(aa)
  16. if __name__ == "__main__":
  17. # print('param:', str(sys.argv))
  18. #print(EchoHi(sys.argv[1]))
  19. aa = Test(sys.argv[1])
  20. print(aa+'main')

Webapi中调用 

  1. [SwaggerControllerOrder(2)]
  2. [ApiController]
  3. [Route("[controller]/[action]")]
  4. public class PythonController : ControllerBase
  5. {
  6. /// <summary>
  7. /// 设置是否保存GS文件 返回结果 true 保存,false 不保存
  8. /// </summary>
  9. /// <returns></returns>
  10. [HttpPost(Name = "RunPythonTest")]
  11. public string RunPythonTest()
  12. {
  13. string msg = RunPythonHelper.ExecPython();
  14. return msg;
  15. }
  16. }

测试返回结果 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/478514
推荐阅读
相关标签
  

闽ICP备14008679号