no-image

C# IronPythonでPythonのソースコードを呼び出す方法【pyファイルはどこにおけばいい?】

C#ではIronPythonというものをつかうことによってC#でpythonのコードを呼び出すことができるようです。そこで少しややこしかったので具体的な手順をしるします。

C#でPythonコードを使用できるようにするまでの手順

  1. IronPythonをインストールする
  2. Pythonのソースコードを作成する
  3. Pythonを呼び出すコードをC#で作成する

おおまかな手順は上記のとおりです。

IronPythonをインストールする

IronPythonのインストールはVisual Studioで行います。

ソリューションエクスプローラーのプロジェクト(C#マークがついているところ)で右クリック ⇒ 「NuGetパッケージの管理」を選択します。
次にNuGetを開いたら「参照」タブに移動してIronPythonを検索しインストールします。
このときインストールするバージョンは「安定版」を選択します。

ダイアログに変更内容が表示されるので、そのままOKボタンをクリックします。これでIronPythonのインストールは完了です。
インストール内容はソリューションエクスプローラーの「参照」で確認できます。IronPythonの項目がみつかればインストールは成功です

Pythonのソースコードを作成する

次にPythonのソースコードを作成します。例えば myClass.py というPythonファイルを作成します。具体的には
ソリューションエクスプローラーのプロジェクト(C#マークがついているところ)で右クリックして「追加」⇒「新しい項目」の順にすすみます。
ソースはテキストファイルを選択しますが、拡張子は.pyなのでmyClass.pyという名前にします。

myClass.pyのソースコード↓

class MyClass:
def greet(self, name):
return “こんにちは” + name + “さん”
pythonコードですのでインデントや文法に注意が必要です。

Pythonを呼び出すコードをC#で作成する

C#でmyClass.pyファイルを呼び出すコードは下記のとおりです。

using IronPython.Hosting; //先頭に追加します。

var py = Python.CreateRuntime(); // 実行エンジンの生成
dynamic script = py.UseFile(“myClass.py”);
dynamic clazz = script.MyClass();
Console.WriteLine(clazz.greet(“山田”));

具体的なコードの解説は省略しますが、これで、pythonソースコードを呼び出すことができます。

大事なこと

詳しい仕組みはわからないのですが、myClass.pyファイルをソリューションエクスプローラーでクリックしプロパティを表示させます。
ここに 「出力ディレクトリ―にコピー」という項目がありますので、これを「常にコピー」にしておきます。これをしておかないとpythonファイルをみつけることができなくなるようです。

結論windowsのファイルエクスプローラーでpythonファイルをあつかうのではなく、すべてvisualstudioで完結する作業です。とくにファイルの移動などはありません。