在.NET中导入Python模块 - “没有名为signal的模块”
我正在尝试在C#代码中导入一个Python模块,代码是这样的:
var setup = Python.CreateRuntimeSetup(null);
var runtime = new ScriptRuntime(setup);
var engine = Python.GetEngine(runtime);
var module = engine.ImportModule("mymodule");
但是我遇到了一个错误,提示“没有名为signal的模块”。这是不是意味着IronPython根本无法加载这个signal模块?这和操作系统有关吗?
有没有人能想到解决办法?
1 个回答
2
“signal”模块是用来处理与信号相关的所有事情的。你猜对了,信号就是操作系统(OS)发送给进程的特殊“消息”,用来告诉它一些事情,比如:中断、杀死、终止等等。具体的消息种类通常是跟操作系统有关的,不过正如Python手册所说,Python模拟的是BSD风格的接口,除了SIGCHLD这个信号。
在CPython中,“signal”模块是内置的,记得没错的话。可能IronPython没有实现这个模块,实际上,快速搜索一下IronPython的网站就能发现这个信息:IronPython和CPython的区别(建议你读一下,特别是扩展模块那部分!)
可能的解决办法是:修改你的模块,让它在IronPython中不使用信号。