概述:需要将 R 库与用 python 编写的 Web 服务器集成。我已经探索了不同博客和堆栈溢出线程中经常提到的一些选项。我遇到的线程比较了 Rpy2 和 pypeR 等库,并提供了集成 R 和 python 的具体答案。我正在寻找的是一个通用的解决方案,这样 R 代码可以被多种编程语言/客户端访问(为了未来的可扩展性)。
要求:
- R 代码应该单独运行以处理繁重的计算,而不是嵌入到应用程序服务器中。
- R 模块应该是可扩展的并且易于维护。例如,对应用程序服务器的任何更改(用 python 编写)都不应触发 R 代码中的更改。
- R 模块可用作 API,以使用 Python 以外的 Web 框架进行进一步的应用程序开发。
已经探索的选项:
- rpy2, pypeR:一种选择是编写一个单独的 python 服务器并让该服务器使用 rpy2 处理 R 代码。应用服务器可以向第二个服务器发送请求。
- Rserve 和 pyRserve:使用 Rserve 和 pyRserve 客户端在 R 和 python 之间进行通信。
- Apache Thrift 和 Protocol Buffer:rprotobuf 是 R 的一个接口,可以使其与 Protocol Buffer 一起使用,但我在 Apache Thrift 中找不到对 R 的任何支持。Thrift 或协议缓冲区之类的东西会比创建 R 服务器更好吗?
- Rapache 和 Rook:使用 R 中的 Rapache 和 Rook 包来设置服务器来处理请求。
- deployR:由革命分析创建。
其中哪一个是理想的选择或不在列表中的任何其他选项?