如何在OSGi部署中包装Python进程

问题描述

我需要将Python代码主体集成到现有的Osgi(Apache Felix)部署中。 我认为,或者至少希望,有软件包可以帮助实现这一目标。

如果有帮助,Python代码仍相对较新且较小,因此可以重新构造以满足需要的约束。但是,由于对第三方库的依赖,它必须保留在Python中。

建议的最佳做法是什么?

解决方法

诀窍是使它成为 extender ,请参见12。您希望Python代码与处理与解释程序交互的代码分开。因此,您要做的就是将Python代码和所有本机库包装在一起。这很简单,因为它只是一个zip文件。

然后,您将开发一个包,以侦听具有python代码的起始包(请参阅BundleTracker)。通常使用清单,但您也可以在JAR的目录中查找。如果您检测到此代码,则将提取所有本机库并在您选择的交错器中运行该代码。

如果可以使用JYthon,则强烈建议使用。然后,您可以将解释器作为在VM上运行的OSGi捆绑软件来携带。如果您需要使用本机编译器,那么您的生活会轻松一些。您可以依靠环境为您提供解释器,但是为什么要首先使用OSGi。一旦在任何地方运行,您基本上都会失去写操作的优势。您可以通过创建包含针对您所支持的所有平台的Python安装程序的捆绑包来全力以赴。可以做到的,不是那么艰巨的,而是维护的噩梦。相信我,本机代码很烂,它只比Java快一点。