【发布时间】:2021-02-20 17:29:57
【问题描述】:
我需要将一段 Python 代码集成到现有的 OSGi (Apache Felix) 部署中。 我假设,或者至少希望,存在可以帮助完成这项工作的软件包。
如果有帮助,Python 代码仍然相对较新且较小,因此可能可以重新架构以满足所需的任何约束。但是,由于依赖于第三方库,它必须保留在 Python 中。
建议的最佳做法是什么?
【问题讨论】:
标签: python osgi apache-felix
我需要将一段 Python 代码集成到现有的 OSGi (Apache Felix) 部署中。 我假设,或者至少希望,存在可以帮助完成这项工作的软件包。
如果有帮助,Python 代码仍然相对较新且较小,因此可能可以重新架构以满足所需的任何约束。但是,由于依赖于第三方库,它必须保留在 Python 中。
建议的最佳做法是什么?
【问题讨论】:
标签: python osgi apache-felix
诀窍是让它成为一个扩展器,参见1 和2。您希望您的 Python 代码与处理与解释器交互的代码分开。因此,您所做的就是将 Python 代码和任何本机库打包成一个包。这很简单,因为它只是一个 zip 文件。
然后您开发一个包,该包监听具有 python 代码的启动包(请参阅 BundleTracker)。清单经常使用,但您也可以查看 JAR 中的目录。如果您检测到此代码,您将提取任何本机库并在您选择的解释器中运行代码。
如果可以使用 JYthon,那么强烈推荐。然后,您可以将解释器作为在 VM 上运行的 OSGi 包携带。如果您需要使用本机编译器,那么您的生活就不那么乐观了。您可以依赖环境为您提供解释器,但为什么要首先使用 OSGi。你基本上失去了一次运行任何地方的优势。您可以通过创建包含适用于您支持的所有平台的 Python 安装程序的捆绑包来全力以赴。可以做到,甚至没有那么难,但维护的噩梦。相信我,原生代码很烂,它只会比 Java 快一点。
【讨论】: