,

C#とIron Python2.0

C#とIron Pythonを連携しようとしてハマったのでメモ。   Web上でみかけたサンプルを見…

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;
でインポートして
 
      ScriptEngine engine = Python.CreateEngine();
      ScriptSource source = engine.CreateScriptSourceFromFile(“test.py”,
                                           System.Text.Encoding.UTF8,
                                           Microsoft.Scripting.SourceCodeKind.Expression);
      int result = source.Execute<int>();
Pythonのソース(test.py)は
 
# coding: utf-8
2 + 2
 
で実行。
 
4が戻ってきた!
 
やったね。
たったこれだけなのに時間がかかってしまった。
 
 

Tags:

コメントを残す