Iron Python / Iron Ruby EXE

时间:2009-06-18 17:22:01

标签: ironpython ironruby

我一直有这个用脚本语言创建'真正的exe'的梦想。有了基于DLR的Python和Ruby实现,这是否更接近现实?

我想创建一个“真正的应用程序”:

  • Windows窗体应用
  • 控制台应用
  • Windows服务

让分发单位成为编译的exe。

这可能吗?或者MS刚刚创建了基于.NET的脚本文件解释器?

如果您这样做,您如何构建您的应用程序/项目?您使用的是C#和DLR代码的混合体吗?

3 个答案:

答案 0 :(得分:4)

IronPython或IronRuby项目可以很好地编译成dll或者可执行文件,并且在任何方面都是“真正的”可执行文件,条件是运行它们的人必须安装相关的.Net框架和依赖项(依赖项可能是默认情况下,它出现在同一目录中,但必须安装框架)。与Visual Studio的集成仍然不存在,但像IronPythonStudio这样的项目使用免费的VS Shell效果很好。在VS 2010中存在DLR作为c#dynamic的依赖应该意味着与Iron *组的VS集成变得更容易实现目标和更高的优先级。

结果绝不是解释的(CIL在运行时或在需要时通过ngen进入机器代码)并且DLR的某些方面意味着某些操作以与后期绑定类似的方式延迟,但对某些操作更有力和关键复杂的缓存机制,与天真的解释器相比,这种机制相对较快。

许多传统解释的脚本语言正在创建自己的基于VM的编译策略或利用现有的编写策略(如JVM,.Net CLR或像LLVM这样的开放式编程策略),因为这会导致许多常见的性能提升案例。

在Iron *语言的情况下,MS CLR作为基础的好处是在最常见的OS系列的绝大多数安装中产生的可执行文件“Just Work”。与Java相比,通过在许多操作系统中通过shell直接单击/或“执行”,jar文件不能“运行”。另一方面,与基于JVM或LLVM的解决方案相比,这降低了互操作性,其中平台支持更广泛但在OS集成中不可避免地更加多样化。

答案 1 :(得分:1)

您可以使用Py2Exe从常规python创建exe。但是不应该阻止你使用Visual Studio或SharpDevelop

使用IronPython创建exes

答案 2 :(得分:-1)

虽然与iron *问题没有直接关系,但对于想要使用python脚本的二进制文件的人来说可能会很有趣:pyinstaller

在Windows(32位和64位),Linux(32位和64位)和Mac OS X(仅限32位)下运行

适用于任何版本的Python,从1.5到2.7