Я вызываю скрипт на python, использующий imaplib.py, и получаю ошибку «no module named fcntl».В результате поиска я обнаружил, что этот модуль доступен только в Unix, и поэтому мне интересно, если скрипт py не понимает, под каким он работает.Опять же, скрипт прекрасно работает под окнами, запускаемыми непосредственно из каталога python.
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
Я немного отследил ее до subprocess.py, который использует imaplib.py, там я заметил переменную sys.platform и попыталсяустановив его на win32, как указано выше, но без разницы.Что-то отличается между средой вызова ironpython и командной строкой Windows из папки cpython.