0
点赞
收藏
分享

微信扫一扫

python实现线下缓存最优算法

沪钢木子 2024-02-29 阅读 16

 visual studio 2022

python 3.10.11

using Microsoft.Scripting.Hosting;
using IronPython.Hosting;
using System.Windows.Forms.Design;

namespace JHCamera3D.Helper.Python
{
    public class RunPythonHelper
    {
        public static string ExecPython()
        {
            string FileName = System.AppDomain.CurrentDomain.BaseDirectory + "PythonScript/pythonTest.py";
            string pm = "pm";
            // 创建进程对象并设置要运行的命令及参数
            var process = new Process();
            process.StartInfo.WorkingDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
            process.StartInfo.FileName = "python.exe";   // python 安装路径或者添加到系统 PATH 变量后直接写"python"
            process.StartInfo.Arguments = $"-u {FileName} {pm}";   // 指定要运行的 Python 脚本文件名(包括完整路径)

            // 隐藏控制台窗口
            process.StartInfo.CreateNoWindow = true;
            process.StartInfo.UseShellExecute = false;

            // 重定向输入、输出和错误流
            process.StartInfo.RedirectStandardInput = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError = true;

            // 开始进程
            process.Start();

            // 等待进程结束
            process.WaitForExit();
            // 获取标准输出结果
            string output = process.StandardOutput.ReadToEnd();




            Console.WriteLine(output);
            return output;
        }

 

    }
}

 Python脚本pythonTest.py

#import open3d as o3d 
#import numpy as np
#import matplotlib.pyplot as plt
import copy
import os
import sys
#import open3d.core as o3c

#print(o3c)
def Test(msg):
    #logger.debug(msg)
    #return ''
    #print('')
    return f"Hello {msg}"

aa=Test("easyboot ")
print(aa)

if __name__ == "__main__":
    # print('param:', str(sys.argv))
    #print(EchoHi(sys.argv[1]))
    aa = Test(sys.argv[1])
    print(aa+'main')

Webapi中调用 

    [SwaggerControllerOrder(2)]
    [ApiController]
    [Route("[controller]/[action]")]
    public class PythonController : ControllerBase
    {
        /// <summary>
        /// 设置是否保存GS文件 返回结果 true 保存,false 不保存
        /// </summary> 
        /// <returns></returns>
        [HttpPost(Name = "RunPythonTest")]
        public string RunPythonTest()
        {
          string msg =  RunPythonHelper.ExecPython();
            return msg; 
        }
    }

测试返回结果 

举报

相关推荐

0 条评论