从Perl调用Python模块

Esc*_*alo 8 python perl interop

我在Python中创建了一个模块,它提供了大约十几个功能.虽然它主要在Python中使用,但很多旧版用户都会从Perl中调用它.

插入此模块的最佳方法是什么?我的想法是:

  1. 提供功能作为命令行实用程序和进行system调用
  2. 创建某种服务器并处理RPC调用(例如,通过JSON RPC)

有什么建议吗?

mfo*_*ani 19

另一个选择是直接在Perl脚本中使用内联Python Inline::Python.

这可能比其他解决方案更简单,只需要一个额外的模块.


dao*_*oad 9

在短期内,最简单的解决方案是使用Inline :: Python.紧接着调用命令行脚本.

从长远来看,使用服务器提供RPC功能或只是调用命令行脚本将为您提供最具前瞻性的解决方案.

为什么?

因为这种方式与Perl或Python无关,因为它是用于构建使用库提供的服务的系统的语言.这两种方法都可以创建一个清晰的,独立于语言的界面,您可以将其用于您采用的任何开发环境

根据您的需要,任何呈现的选项都可能是"最佳选择".根据您的需求随时间的变化而变化,可能会将不同的选择显示为"最佳".

我的方法是提出几个问题:

您多久更换一次开发工具.你已经从Perl切换到了Python.你是从Tcl开始去Perl吗?你会在1年,5年或10年内转向令人兴奋的新语言X吗?如果您经常更改工具(无论这意味着什么),请强调跨工具兼容性.

速度有多快?命令行解决方案的启动时间是否正常?Inline :: Python是否会使事情变得太慢(你仍在初始化Python解释器,它只是嵌入在你的Perl解释器中)?

根据这些问题的答案,我会做最简单的事情.

我的猜测是按顺序表示:

  1. 内嵌:: Python的
  2. 命令行脚本
  3. 构建RPC服务器