C# 带Symphy的IronPython脚本
现在我得到一个错误: 应用程序中的服务器错误。无法导入名称类型的说明:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。异常详细信息:IronPython.Runtime.Exceptions.ImportException:无法导入名称类型的源错误:第44行:expr));第45行:第46行:script.Execute(范围);第48行:返回scope.GetVariable(“结果”)C# 带Symphy的IronPython脚本,c#,python,.net,ironpython,sympy,C#,Python,.net,Ironpython,Sympy,现在我得到一个错误: 应用程序中的服务器错误。无法导入名称类型的说明:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。异常详细信息:IronPython.Runtime.Exceptions.ImportException:无法导入名称类型的源错误:第44行:expr));第45行:第46行:script.Execute(范围);第48行:返回scope.GetVariable(“结果”) 我不熟悉在.NET中执行Python代码,但在Py
我不熟悉在.NET中执行Python代码,但在Python中,每个缩进都有其意义。我猜您需要删除代码的所有前导空格:
// ...
var script = engine.CreateScriptSourceFromString(string.Format(@"
from sympy import *
value = {0}
import clr
from System import String
result = clr.Convert(value , String)", expr));
script.Execute(scope);
我不熟悉在.NET中执行Python代码,但在Python中,每个缩进都有其意义。我猜您需要删除代码的所有前导空格:
// ...
var script = engine.CreateScriptSourceFromString(string.Format(@"
from sympy import *
value = {0}
import clr
from System import String
result = clr.Convert(value , String)", expr));
script.Execute(scope);
正如我在一篇评论中所指出的,如果你不告诉我们错误是什么,就不可能判断出你出了什么问题,但有一种可能是你错误地使用了
limit
。您需要向它传递一个符号对象,而不是lambda函数,它需要三个参数,并调用无穷大,oo
,而不是inf
n = Symbol("n")
limit((1 + 3/n)**n, n, oo)
正如我在一篇评论中所指出的,如果你不告诉我们错误是什么,就不可能判断出你出了什么问题,但有一种可能是你错误地使用了
limit
。您需要向它传递一个符号对象,而不是lambda函数,它需要三个参数,并调用无穷大,oo
,而不是inf
n = Symbol("n")
limit((1 + 3/n)**n, n, oo)
@还是同样的错误吗?这些行前面真的没有空格吗?
@“
行是否有任何尾随空格?当我将它们作为一行添加时,会得到此错误脚本。执行(范围);=>意外标记'value'@user1940128好吧,你不能在一行中编写Python。空格,包括换行符,很重要。你能尝试手动添加\n
换行符,但将字符串保留在一行中吗?(您需要从字符串文本中删除@
,以使转义序列正常工作)我尝试使用空格,但仍然存在相同的问题。@user1940128仍然存在相同的错误?这些行前面是否确实没有空格?@
line是否有任何尾随空格?当我将它们作为一行添加时,会得到此错误脚本。执行(范围);=>意外标记'value'@user1940128好吧,你不能在一行中编写Python。空格,包括换行符,很重要。你能尝试手动添加\n
换行符,但将字符串保留在一行中吗?(您需要从字符串文本中删除@
,以使转义序列正常工作)我尝试过使用空白,但我仍然有同样的问题。问题是什么?告诉我们错误消息是什么。顺便说一下,SymPy还没有在IronPython中进行正式测试,所以问题可能只是它在那里不起作用。问题是什么?告诉我们错误消息是什么。顺便说一下,SymPy还没有正式测试过IronPython中的d,因此问题可能只是它在那里不起作用。我用检查空格更改了代码,然后尝试了您的解决方案。我得到了这个错误。您知道吗?没有名为fcntl的模块说明:在执行当前web请求期间发生了未经处理的异常。请查看堆栈跟踪以了解更多信息关于错误及其源代码的信息。异常详细信息:IronPython.Runtime.Exceptions.ImportException:没有名为fcntl的模块源错误:第39行:结果=clr.Convert(value,String)”,expr));第40行:第41行:script.Execute(scope);第42行:第43行:返回scope.GetVariable(“结果”);您可以从iron python shell运行import sympy
吗?我也知道。我认为这是IronPython中的一个错误。请尝试执行import子流程
(注意,这是python标准库的一部分)。顺便问一下,您在哪个平台上?我正在使用visual studio 2010。我用检查空格更改了代码,然后尝试了您的解决方案。我遇到了此错误。您知道吗?没有名为fcntl的模块说明:在执行当前web请求期间发生了未经处理的异常。有关详细信息,请查看堆栈跟踪关于错误及其在代码中的起源。异常详细信息:IronPython.Runtime.Exceptions.ImportException:没有名为fcntl的模块源错误:第39行:result=clr.Convert(value,String)”,expr);第40行:第41行:script.Execute(范围);第42行:第43行:返回scope.GetVariable(“结果”);你能从iron python shell运行导入sympy吗?我也知道。我认为这是IronPython中的一个bug。请尝试执行导入子流程(注意,这是Python标准库的一部分)。顺便问一下,您使用的是什么平台?我使用的是visual studio 2010