使用C#4.0运行Python脚本错误非ascii字符

使用C#4.0运行Python脚本错误非ascii字符,c#,python,C#,Python,我最终希望能够将数据帧从Python返回到C。目前,我正在运行一个非常简单的控制台应用程序,尝试运行一个基本的Python脚本。这个脚本可以很好地编译和运行,但是当我从C#运行它时,我得到了与非ASCII字符相关的错误 我读过许多与此相关的文章,但似乎没有一篇能够解决我所面临的问题 错误 语法错误:文件C:\Program Files\Enthught\Canop中的非ASCII字符“\x90” 第1行的y32\App\appdata\canopy-1.5.2.2785.win-x86\pyth

我最终希望能够将数据帧从Python返回到C。目前,我正在运行一个非常简单的控制台应用程序,尝试运行一个基本的Python脚本。这个脚本可以很好地编译和运行,但是当我从C#运行它时,我得到了与非ASCII字符相关的错误

我读过许多与此相关的文章,但似乎没有一篇能够解决我所面临的问题

错误 语法错误:文件C:\Program Files\Enthught\Canop中的非ASCII字符“\x90” 第1行的y32\App\appdata\canopy-1.5.2.2785.win-x86\python.exe,但没有编码 宣布;有关详细信息,请参阅

Thx提前为您提供任何帮助

static int test_python_canopy()
{
    string cmd;
    string args;

    args = "C:\\Share\\Python\\test.py";

    cmd = @"C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.5.2.2785.win-x86\python.exe";
    cmd = "\"" + cmd + "\"";

    ProcessStartInfo start = new ProcessStartInfo();
    start.FileName = cmd;
    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);
        }
    }
    return 0;
}

对于
ProcessStartInfo
FileName
应设置为要运行的可执行文件,而
Arguments
应设置为要传递给该可执行文件的参数

在代码中,
FileName
被正确设置为Python解释器<但是,第一个参数被设置为Python解释器。最终结果是C#试图执行以下命令:

C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.5.2.2785.win-x86\python.exe C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.5.2.2785.win-x86\python.exe C:\Share\Python\test.py
这意味着Python试图将Python可执行文件用作脚本,但这是行不通的。更改设置参数的行可以解决此问题:

start.Arguments = args;

我正在运行的Python脚本是#/usr/bin/python#--coding:utf-8--print“Hi!!”import sys path=sys.argv[0]#给定的1参数是路径sys.path.append(path)def MethodCall(OutputString):print OutputString MethodCall(“Hello World!”)L2#--编码:utf-8--