我打電話給一個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