【问题标题】:How can I wrap Python processes in an OSGi deployment如何在 OSGi 部署中包装 Python 进程
【发布时间】:2021-02-20 17:29:57
【问题描述】:

我需要将一段 Python 代码集成到现有的 OSGi (Apache Felix) 部署中。 我假设,或者至少希望,存在可以帮助完成这项工作的软件包。

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

建议的最佳做法是什么?

【问题讨论】:

    标签: python osgi apache-felix


    【解决方案1】:

    诀窍是让它成为一个扩展器,参见12。您希望您的 Python 代码与处理与解释器交互的代码分开。因此,您所做的就是将 Python 代码和任何本机库打包成一个包。这很简单,因为它只是一个 zip 文件。

    然后您开发一个包,该包监听具有 python 代码的启动包(请参阅 BundleTracker)。清单经常使用,但您也可以查看 JAR 中的目录。如果您检测到此代码,您将提取任何本机库并在您选择的解释器中运行代码。

    如果可以使用 JYthon,那么强烈推荐。然后,您可以将解释器作为在 VM 上运行的 OSGi 包携带。如果您需要使用本机编译器,那么您的生活就不那么乐观了。您可以依赖环境为您提供解释器,但为什么要首先使用 OSGi。你基本上失去了一次运行任何地方的优势。您可以通过创建包含适用于您支持的所有平台的 Python 安装程序的捆绑包来全力以赴。可以做到,甚至没有那么难,但维护的噩梦。相信我,原生代码很烂,它只会比 Java 快一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 2015-02-15
      • 2013-03-09
      • 2013-09-20
      • 1970-01-01
      相关资源
      最近更新 更多