【问题标题】:How can I create a Python wrapper around Perl code?如何围绕 Perl 代码创建 Python 包装器?
【发布时间】:2011-09-30 06:33:02
【问题描述】:

我希望为我打算使用 RESTful Web 服务框架构建的站点编写一个围绕现有 Perl API 的 Python 包装器。有没有人能够成功地做到这一点(构建 Python 到 Perl 的包装器)?

我在这里看到了http://wiki.python.org/moin/IntegratingPythonWithOtherLanguages#Perl 的页面,其中详细介绍了一些可用的包,但我不确定是否有人有使用这些包的经验以及是否比其他包更好?

请问有什么优缺点吗? :-D

【问题讨论】:

    标签: python perl rest integration wrapper


    【解决方案1】:

    使用subprocess

    subprocess.Popen( "perl some_code.pl" )
    

    效果很好。

    【讨论】:

    • 是的,我就是这么想的,但这让事情变得更加难以维护!
    • @Steve:怎么会这样? perl 保持不变。 Python 调用 perl 脚本。这是一行代码。什么是“难以维护”?请具体说明这将导致的问题。
    • 我正在围绕 Perl API 而不是特定的 Perl 脚本创建一个包装器,因此使用此方法意味着必须为 Perl 中的每个函数创建一个包装器脚本,然后使用 Python 中的子进程调用它.如果是这样的话,在 Perl 中做所有事情会更有意义!我希望将 Python 和 Django 用于 RESTful wsf,但我可能不得不使用 Perl 和 Catalyst?我会相应地更新我的帖子!
    • "在 Perl 中为每个函数创建一个包装脚本" 似乎过分了。包装器真的有必要吗?或者可以向 perl 提供一行代码。我们在 Python 中执行此操作:python -c 'import package; package.function(args)' 提供一行代码并省去编写大量包装器的麻烦。
    • 我试试看!在没有允许内联 Perl 代码的包的情况下,这似乎是我唯一的选择。话虽如此,与我合作的开发人员正在为这个项目使用 Catalyst,但我可以在未来将这种方法用于我自己的一些工作:-)
    【解决方案2】:

    PyPerlish 不再开发,Inline::Python 用于在 perl 中使用 python 代码,所以...我会选择 PyPerl。

    【讨论】:

    • 是的,据我所知,从维护的角度来看,它们几乎都停滞不前。在 OS X 上安装 PyPerl 真的很麻烦!似乎 openSUSE (11.4) 的最新版本是 1.0.1d,所以可能不得不尝试在 Linux 上安装!
    • @Steve:根据this, search for 1.0.1d,我只能假设 1.0.1c 和 1.0.1d 是相同的,除了设置脚本。因此,您可能想在 OS X 上尝试 1.0.1c。
    • 是的,据我所知,1.0.1d 会自动为您运行 perl Makefile.PL!自己运行它不是什么大问题。我将获得 1.0.1c 并尝试一下 :)
    • 设法从 Mandriva 找到带有多个补丁的 1.0.1d,但目前无法编译 - svn.mandriva.com/svn/packages/cooker/python-perlmodule/current/…
    猜你喜欢
    • 1970-01-01
    • 2020-02-22
    • 2021-03-26
    • 2019-01-21
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多