【发布时间】:2014-03-04 20:47:20
【问题描述】:
我正在尝试在 C# 中使用 IronPython 日志功能。想法是用户将编写一个数学脚本,该脚本将被评估并在 UI 中显示答案。当我将这种方法用于简单的数学运算(加法、减法等)时,它工作得很好。当我需要使用日志功能时,我尝试导入数学模块失败。我的代码是:
public double Calculate(string script)
{
ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromString("import math" + System.Environment.NewLine + script, SourceCodeKind.AutoDetect);
return source.Execute<double>();
}
当我运行此代码时,我得到异常'IronPython.Runtime.Exceptions.ImportException No Module named math.
I am calling method as
Calculate("math.log(10)")`
我是否缺少任何导入或 dll?
【问题讨论】:
-
我认为,如果你导入了数学,你可以只使用
Calculate("log(10)")而不使用math。 -
谢谢哈姆雷特,我试过了也没用。
-
您的帖子不是真正的代码...您的帖子包含带有小写 m 的“导入数学”,当使用“导入数学”(大写 m)时,您收到的错误将弹出.所以基本上,你粘贴的这段代码实际上是有效的:)
-
我在使用旧版本 IronPython 和 Microsoft.Script 和 Microsoft.Dynamic dll 的小写“m”的数学运算时遇到了异常。我在数学中使用小写 m 因为我想使用 Python 数学函数。对于 CSharp 数学函数,您需要使用“import System.Math”。如果你只使用'import Math',你会一直得到异常。
标签: c# math ironpython