在IronPython和IronRuby中打包脚本源文件

3 投票
3 回答
537 浏览
提问于 2025-04-15 11:57

有没有人知道怎么把Python和Ruby的库作为资源添加到一个DLL文件里,以便部署?我想在我的应用程序里放一个脚本引擎,但不想把这两种语言的整个标准库都以源文件的形式部署出去。有没有简单的方法可以做到这一点,让require或import语句能找到这些嵌入的资源?

3 个回答

0

IronPython 2.0 有一个叫 PYC 的示例编译器,放在 Codeplex.com/ironpython 上,可以用来创建 DLL 文件(如果你需要的话,也可以创建应用程序)。

IronPython 2.6 里有一个更新版的 PYC,放在 Tools\script 文件夹下。

祝好,Davy

0

你可以创建流内容提供者,比如说。

在 IronRubyMVC 项目的 IronRubyMVC/Core/ 文件夹下,你会找到你需要的东西。

AssemblyStreamContentProvider

内容提供者的使用方法

1

你可以添加一个自定义的导入钩子,这样在执行导入时就能查找嵌入的资源。不过,这个方法有点复杂,可能不太值得去折腾。

更好的方法是,在启动时就把所有嵌入的模块都加载进来,然后用脚本引擎执行它们,并把你创建的模块放进和引擎关联的sys.modules字典里。这样一来,Python代码在引擎中执行时就能自动找到这些模块了。

撰写回答