ブログ

割とコンピュータよりの情報をお届けします。

2019年2月11日

C#からPythonの関数を呼び出し2

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のインストールパスを指定すると実行ができる.
 

≫ 続きを読む

2019/02/11 コンピュータ   TakeMe
タグ:Python