如何在python.net中运行python脚本

如何在python.net中运行python脚本,python,c#,.net,python.net,Python,C#,.net,Python.net,我需要在.Net中运行python脚本。因此,我使用了Python.net()。通过使用Python.net,我能够运行Python文件。但我的要求是用户在Textarea中编写脚本,因此我需要从Textarea读取脚本,并将其传递到python.net并读取输出。 下面是能够运行python文件的代码。我需要将python脚本和输入传递给python变量,而不是传递python文件 private void ExecutePythonFile() { // Setu

我需要在.Net中运行python脚本。因此,我使用了Python.net()。通过使用Python.net,我能够运行Python文件。但我的要求是用户在Textarea中编写脚本,因此我需要从Textarea读取脚本,并将其传递到python.net并读取输出。 下面是能够运行python文件的代码。我需要将python脚本和输入传递给python变量,而不是传递python文件

  private void ExecutePythonFile()
    {
        // Setup all paths before initializing Python engine
        string pathToPython = @"C:\Users\NagamanikantaMacha\AppData\Local\Programs\Python\Python38";
        string path = pathToPython + ";" +
                      Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine);
        Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);
        Environment.SetEnvironmentVariable("PYTHONHOME", pathToPython, EnvironmentVariableTarget.Process);

        var lib = new[]
        {
            @"C:\Users\NagamanikantaMacha\source\repos\PythonNet\PythonNet",
            Path.Combine(pathToPython, "Lib"),
            Path.Combine(pathToPython, "DLLs")
        };

        string paths = string.Join(";", lib);
        Environment.SetEnvironmentVariable("PYTHONPATH", paths, EnvironmentVariableTarget.Process);

        using (Py.GIL()) //Initialize the Python engine and acquire the interpreter lock
        {
            try
            {
                // import your script into the process
                dynamic sampleModule = Py.Import("Forecast");
                 List<string> mylist = new List<string>();
                var results = sampleModule.func1();
                ArrayList parrylist = new ArrayList();
                parrylist.Add((Double[])results[0]);
                parrylist.Add( (string[]) results[1]);
                parrylist.Add((Double[])results[2]);
                parrylist.Add((Double[])results[3]);
              
               
           }
            catch (Exception ex)
            {
               Console.WriteLine("Error occured: ", ex.Message);
            }
        }
    }
private void ExecutePythonFile()
{
//在初始化Python引擎之前设置所有路径
字符串pathToPython=@“C:\Users\NagamanikantaMacha\AppData\Local\Programs\Python\Python38”;
字符串路径=pathToPython+“;”+
GetEnvironmentVariable(“路径”,EnvironmentVariableTarget.Machine);
SetEnvironmentVariable(“PATH”,PATH,EnvironmentVariableTarget.Process);
SetEnvironmentVariable(“PYTHONHOME”,pathToPython,EnvironmentVariableTarget.Process);
var lib=new[]
{
@“C:\Users\NagamanikantaMacha\source\repos\PythonNet\PythonNet”,
Path.Combine(pathToPython,“Lib”),
Path.Combine(pathToPython,“DLL”)
};
字符串路径=string.Join(“;”,lib);
SetEnvironmentVariable(“PYTHONPATH”,路径,EnvironmentVariableTarget.Process);
使用(Py.GIL())//初始化Python引擎并获取解释器锁
{
尝试
{
//将脚本导入到流程中
动态sampleModule=Py.Import(“预测”);
List mylist=新列表();
var results=sampleModule.func1();
ArrayList parrylist=新的ArrayList();
parrylist.Add((Double[])结果[0]);
添加((字符串[])结果[1]);
parrylist.Add((Double[])结果[2]);
parrylist.Add((Double[])结果[3]);
}
捕获(例外情况除外)
{
Console.WriteLine(“发生错误:”,例如消息);
}
}
}

请任何人帮我解决这个问题

这回答了你的问题吗?只是不做任何改变地问你的封闭式问题不会让事情变得更好。请阅读我的询问,并提供适当的信息。我真的不明白你到底想让我问什么好问题。