2011-08-09 7 views
11

私は現在、提供されているPythonスクリプトファイルで関数を呼び出すC#でプログラムをビルドしています。これらのスクリプトの
いくつかのエラーが発生し通話sys_getframe()、ファイル:(。IronPythonのは、デフォルトで有効に_getframeを持っていないので)IronPython sys._getframeが見つかりません

System.MissingMemberException: 'module' object has no attribute '_getframe'

私はグーグルのかなり多くを行っています私は直接ipy.exeを使ってPythonコードを実行しているわけではないので、ipy.exeで有効にすることができることを知りました。これはコマンドラインオプションとして-X:Framesを提供しています。

this threadには、IronPythonをソースからコマンドラインオプションで再構築することが記載されていますが、ソースファイルをダウンロードしましたが、これらのオプションを使用してビルドする方法はわかりません。
また、オプションは公式インストーラにあると言いますが、私はインストーラを複数回実行しましたが、そこにあるオプションを垣間見ることはできませんでした。

答えて

14

PythonEngineを作成するときは、オプションの辞書を渡すことができます。あなただけtrueに辞書の「フレーム」および/または「FullFrames」キーを設定する必要があります:あなたはFullFramesをしたくない場合は

var options = new Dictionary<string, object>(); 
options["Frames"] = true; 
options["FullFrames"] = true; 
ScriptEngine engine = Python.CreateEngine(options); 

は、ちょうどそれを残したり、falseに設定します。

5

質問の範囲外ですが、ipy.exeインタプリタを直接使用してPythonスクリプトを呼び出すことでこのエラーを受け取った人は対象外です。

引数-X:FullFramesを追加することができます。例えば、

のようなスクリプトを呼び出すと、
ipy.exe -X:FullFrames script.py 
関連する問題