I tried to generate a standalone exe for a tool I have (3 modules) but it bombs out at startup with:
Unhandled Exception: IronPython.Runtime.Exceptions.ImportException: No module named os
at DLRCachedCode.__main__$1(CodeContext $globalContext, FunctionCode $functionCode)
at IronPython.Compiler.OnDiskScriptCode.Run()
at IronPython.Runtime.PythonContext.InitializeModule(String fileName, ModuleContext moduleContext, ScriptCode scriptCode, ModuleOptions options)
at IronPython.Runtime.ModuleLoader.load_module(CodeContext context, String fullName)
at Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)
I can reproduce with this simple foo.py module
foo.py
import os
print "Hello"
print "OS:",os.name
print "Bye"
end foo.py
which I compile with the following:
ipy -m pyc /standalone /main:foo.py /target:exe /out:foo
or
ipy -m pyc /main:foo.py /target:exe /out:foo2
Starting either foo.exe or foo2.exe fails with above error.
If I remove the import os and the line that uses on.name, I get an executable that works...