我在我的Silverlight項目中使用IronPython作爲DLR的數學解析器:它可以工作,但是在涉及除法的情況下計算不正確的結果,因爲它有時使用整數而不是浮點數學(所以4/3返回1)。谷歌建議將from __future__ import division
添加到python腳本中,但是當我嘗試運行它時會引發異常。Ironpython和未來的陳述
在IronPython中是否支持__future__
語句?我能做些什麼來使他們工作?
我在我的Silverlight項目中使用IronPython作爲DLR的數學解析器:它可以工作,但是在涉及除法的情況下計算不正確的結果,因爲它有時使用整數而不是浮點數學(所以4/3返回1)。谷歌建議將from __future__ import division
添加到python腳本中,但是當我嘗試運行它時會引發異常。Ironpython和未來的陳述
在IronPython中是否支持__future__
語句?我能做些什麼來使他們工作?
您必須確保__future__.py
可用於導入。不過,我不確定如何爲Silverlight做到這一點。
再說什麼傑夫建議,也可以設置在發動機
var engineOptions = new Dictionary<string, object>();
engineOptions["DivisionOptions"] = PythonDivisionOptions.New;
var engine = Python.CreateEngine(engineOptions);
Console.WriteLine("{0}", engine.Execute("4/3"));
時設置的分行爲或當您編譯腳本:
var engine = Python.CreateEngine();
var compilerOptions = (PythonCompilerOptions)engine.GetCompilerOptions();
compilerOptions.Module |= ModuleOptions.TrueDivision;
var code = engine.CreateScriptSourceFromString("4/3").Compile(compilerOptions);
Console.WriteLine("{0}", code.Execute());
太棒了,第一種方法正是我所需要的,而不是設置搜索路徑,這在服務器環境中有點棘手。謝謝! – 2016-02-10 13:56:16
只需添加'__future __ py'文件在Silverlight應用程序文件夾中的其他python文件旁邊。 – 2011-03-02 21:30:26