C#とIron Pythonを連携しようとしてハマったのでメモ。
Web上でみかけたサンプルを見かけたので実行しようとしたら
Iron Python2.0ではPythonEngineクラスがありませんでした。
なんとなくIronPython.dllの中身をオブジェクトブラウザで探すと
Python.CreateEngine()
を発見。
PythonEngineじゃなくてScriptEngineだけど
IronPythonフォルダにMicrosoft.Scripting.dllがあったので参照
using Microsoft.Scripting.Hosting;
で使おう。
試行錯誤でなんとか動いた
C#のコードは
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting;
でインポートして
ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromFile(“test.py”,
ScriptSource source = engine.CreateScriptSourceFromFile(“test.py”,
System.Text.Encoding.UTF8,
Microsoft.Scripting.SourceCodeKind.Expression);
int result = source.Execute<int>();
int result = source.Execute<int>();
Pythonのソース(test.py)は
# coding: utf-8
2 + 2
2 + 2
で実行。
4が戻ってきた!
やったね。
たったこれだけなのに時間がかかってしまった。
コメントを残す