'Empty output when calling a python script in C# project

I would like to call a python script in my C# project , I'm using this function to do the job but unfortunately I didn't get any result and the result variable shows always an empty output. I would like to know what's the reason of this

    public string RunFromCmd(string rCodeFilePath, string args)
    {
        string file = rCodeFilePath;
        string result = string.Empty;

        try
        {

            var info = new ProcessStartInfo(pythonPath);
            info.Arguments = @"C:\Users\MyPc\ExternalScripts\HelloWorld.py" + " " + args;

            info.RedirectStandardInput = false;
            info.RedirectStandardOutput = true;
            info.UseShellExecute = false;
            info.CreateNoWindow = true;

            using (var proc = new Process())
            {
                proc.StartInfo = info;
                proc.Start();
                proc.WaitForExit();
                if (proc.ExitCode == 0)
                {
                    result = proc.StandardOutput.ReadToEnd();
                }
            }
            return result;
        }
        catch (Exception ex)
        {
            throw new Exception("R Script failed: " + result, ex);
        }
    }

Click Event ( Calling funtion )

  private void Button1_Click(object sender, RoutedEventArgs e)
        {
            pythonPath = Environment.GetEnvironmentVariable("PYTHON_PATH");
            RunFromCmd(pythonPath, "");
        }

Python Script :

import sys

def main():
    text = "Hello World"
    return text


result = main()


Solution 1:[1]

I've fixed the issue by setting Copy if newer instead of Do Not Copy to HelloWorld.py Script

enter image description here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 abdou93