【发布时间】:2010-10-26 19:15:17
【问题描述】:
我正在调用一个使用 imaplib.py 的 python 脚本并得到“没有名为 fcntl 的模块”错误。通过搜索,我发现这个模块仅在 unix 中可用,所以我想知道 py 脚本是否对它在什么操作系统下运行感到困惑。同样,脚本在直接从 python 目录运行的 windows 下运行良好。
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 脚本。请注意,注释掉 import 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 模块的不同可用性问题是否令人困惑?
标签: c# .net python ironpython