「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