IronPython 2.7A1从文件源执行throws方法未实现错误

时间:2010-10-25 21:02:00

标签: c# ironpython

我试图从Windows可执行文件调用python脚本,最终目标是一个Windows服务,我可以插入各种脚本,例如拉回电子邮件附件(因为python具有良好的imap支持)。当然,我是一个全新的所以我无能为力:)我得到一个未处理的例外:

System.NotImplementedException:未实现方法或操作。在Microsoft.Scripting.PlatformAdaptationLayer.OpenInputFileStream(String path)

和更多,但这似乎是关键问题。显然,这必须与从文件中读取代码有关,因为下面的简单更改使其工作。我想知道这是否是IP 2.7A1中的一个错误,但我想我会在我的希望详尽的网络搜索中找到它。好的,这是代码:

var engine = Python.CreateEngine();
var script = engine.CreateScriptSourceFromFile("PyTest.py");
ScriptScope scope = engine.CreateScope();
script.Execute(scope);

和PyTest.py代码非常简单,来自网络的一个例子:

import sys

#def Main():

def adder(arg1, arg2):
        return arg1 + arg2

class MyClass(object):
        def __init__(self, value):
            self.value = value

如果我通过将脚本分配给字符串值并使用CreateScriptSourceFromString方法调用该脚本,它可以正常工作。我已经验证了代码可以通过执行file.exists(fileName)来查看PyTest.py文件,并且它可以看到该文件。我也试着明确地给出了无济于事的道路。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

您确定要使用适用于.NET框架的IronPython构建吗? Silverlight构建(也将加载在桌面框架上)禁用文件系统内容。我可以通过控制台.exe来做到这一点,所以请提供更多信息。