我有一个简单的IronPython脚本:
# Foo.py
import os
def main():
print( "Hello" )
if "__main__" == __name__:
main()
Run Code Online (Sandbox Code Playgroud)
它运行正常并打印Hello如果我用IronPython运行它:
ipy Foo.py
Run Code Online (Sandbox Code Playgroud)
按照IronPython中给出的说明- 如何编译exe,我使用以下命令将此IronPython脚本编译为EXE:
ipy pyc.py /main:Foo.py /target:exe
Run Code Online (Sandbox Code Playgroud)
执行Foo.exe会出现此错误:
Unhandled Exception: IronPython.Runtime.Exceptions.ImportException: No module named os
at Microsoft.Scripting.Runtime.LightExceptions.CheckAndThrow(Object value)
at DLRCachedCode.__main__$1(CodeContext $globalContext, FunctionCode $functionCode)
at IronPython.Compiler.OnDiskScriptCode.Run()
at IronPython.Compiler.OnDiskScriptCode.Run(Scope scope)
at IronPython.Runtime.PythonContext.InitializeModule(String fileName, ModuleContext moduleContext, ScriptCode scriptC
ode, ModuleOptions options)
Run Code Online (Sandbox Code Playgroud)
为什么找不到模块"os"?我该如何解决这个问题,这样我才能得到一个有效的EXE?
(请注意,这与IronPython无法导入模块操作系统的问题不同,因为如果我运行脚本,脚本工作正常ipy.exe
.)
我已经尝试使用py2exe(与ipy不兼容)和PYC(过时).任何人都可以指向一个好的编译器的方向?