2010-06-30 43 views
2

我可以使用ironpython 2.6(不適用於.net 4)load numpy,在命令行上使用-X:Frames或-X:FullFrames運行ipy。但是,如果我想在C#2.0中使用Ironpython/DLR來加載py文件,我該如何使用-X:Frames或-X:FullFrames?如何使用-X:C#2.0中的框架來加載ironpython?

我想它是這樣的:

 var lang = Python.CreateLanguageSetup(null); 
     lang.Options["Frames"] = ScriptingRuntimeHelpers.True; 
     var setup = new ScriptRuntimeSetup(); 
     setup.LanguageSetups.Add(lang); 
     var runtime = new ScriptRuntime(setup); 
     var engine = runtime.GetEngine("py"); 

     engine.ExecuteFile("test.py"); 

但是,它沒有工作!那麼,有沒有人可以幫我一把嗎?

回答

1

我不認爲幀工作或不工作的你問題。如果我把你的代碼,並提出:

import sys 
sys._getframe() 

到test.py它的工作原理,如果我有「lang.Options [‘框架’] = ScriptingRuntimeHelpers.True;」如果我不行,就會失敗。這表明該選項工作正常。

那麼你得到的錯誤是什麼?這可能是因爲你需要設置一些命令行通常會做的事情 - 比如可能需要當前目錄和/或「。」的sys.path。或者,也許site.py需要導入。或者,也許IronClad安裝在DLL目錄中並自動加載,因此您需要對其DLL執行runtime.LoadAssembly(...)。

+0

我tred sys._getframe(),它沒問題,用-X運行ipy控制檯:Frames也可以。僅在C#2.0中通過ironpython加載py。我上傳我的代碼(Visual Studio 2010的解決方案,但.NET 2.0的項目):HTTP://1oz7ga.blu.livefilestore.com/y1pbhO4fRA4M7KUlnk0Oi19-dTmSUhRdj2rQ6tguLebK829d9WykIUoc3vQEvuhlkhFU6xIT_cCOXjGB9TOMo064a-Qzcb4gbea/ex_vs10_cs%20load%20ipy%20ironclad.rar下載&PSID = 1 – Begtostudy 2010-07-01 06:16:05

+0

你應該將文件名的「* .rar_」改爲「* .rar」。 – Begtostudy 2010-07-01 06:20:29

0

你的問題看起來與此類似: Can't import numpy into embedded ironpython engine

但是,也許你應該給你有什麼錯誤的詳細信息...

+0

但他的問題似乎沒有解決...... – Begtostudy 2010-06-30 08:20:50

+0

您是否試圖檢查您的路徑,如鏈接中所建議的? – digEmAll 2010-06-30 08:36:04

+0

我用「ipy.exe -X:Frames」運行「test.py」。沒關係,沒問題。所以我認爲這是Frames設置問題。 – Begtostudy 2010-07-01 00:42:36