我打电话给一个python脚本,它使用imaplib.py并得到“no module named fcntl”错误。从搜索中我发现这个模块只能在unix下使用,所以我想知道py脚本是否对它运行的操作系统感到困惑。同样,脚本可以在python目录直接运行的windows下正常工作。当py脚本从c#运行,但从Windows命令行运行“No module named fcntl”
var engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
var ops = engine.Operations;
var script = engine.CreateScriptSourceFromFile("PyTest.py");
CompiledCode code = script.Compile();
//string scode = script.GetCode();
code.Execute(scope);
和最小的py脚本来触发它。请注意,注释输入imaplib.py行将停止错误。
import sys
sys.path = ["Python\Lib"]
sys.platform = ["win32"]
import os
import os
import getopt
import getpass
import time
import imaplib
我追查了一下说imaplib.py用途subprocess.py,还有我注意到sys.platform变量,并试图将其设置Win32的上面一样,但并没有区别。 Ironpython调用环境和cpython文件夹的Windows命令提示符之间有所不同。
那么在运行IronPython时,各种stdlib模块的不同可用性会产生混淆? – 2010-10-26 19:34:03