C#ではIronPythonというものをつかうことによってC#でpythonのコードを呼び出すことができるようです。そこで少しややこしかったので具体的な手順をしるします。
C#でPythonコードを使用できるようにするまでの手順
- IronPythonをインストールする
- Pythonのソースコードを作成する
- 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で完結する作業です。とくにファイルの移動などはありません。
コメント