「C#からPythonの関数を呼び出し」の最後の方で,「デバッグの時は云々」の部分をもう少し詳しく書く.
まずはコードを示してみる.
using System;
using System.Collections.Generic;
using Python.Runtime;
namespace TEST
{
class Program
{
// TEST.exe C:\python-3.7.0-embed-amd64\
// numpy入りのpython embeddableを指定してください.
static void Main(string[] args)
{
var path = Environment.GetEnvironmentVariable("PATH");
path = path + args[0] + ";";
Environment.SetEnvironmentVariable("PATH", path);
using (Py.GIL())
{
dynamic sys = Py.Import("sys");
sys.path.append(args[0]);
dynamic np = Py.Import("numpy");
dynamic a = np.array(new List<double> { 1, 2, 3 });
Console.WriteLine(a.dtype);
dynamic b = np.array(new List<int> { 6, 5, 4 }, dtype: np.int32);
Console.WriteLine(b.dtype);
Console.WriteLine(a * b);
Console.ReadKey();
}
}
}
}
まずは,環境変数PathにPython Embeddableのインストールパスを設定する.
さらに,sys.path.appendでPythonモジュールのパスも指定する.
このようにすると,実行時の引数にPython embeddableのインストールパスを指定すると実行ができる.
タグ:Python

