我试图从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文件,并且它可以看到该文件。我也试着明确地给出了无济于事的道路。
感谢您的任何建议!
答案 0 :(得分:0)
您确定要使用适用于.NET框架的IronPython构建吗? Silverlight构建(也将加载在桌面框架上)禁用文件系统内容。我可以通过控制台.exe来做到这一点,所以请提供更多信息。