4

我正在尝试开发一个 chrome 扩展,其中我已经在 'python' 中编写了所有逻辑。现在在浏览器操作上,我想传递参数并执行该 .py 文件并将结果返回到将在浏览器操作上打开的弹出窗口。要从 JavaScript 调用 .py 文件,我知道我需要编写一个 NPAPI 插件。但是我对我应该采取哪种方法感到困惑。我遇到了几个选择,并试图选择最简单的方法来做到这一点..

  1. 睡衣 Python Javascript 编译器:是一个 Python 到 Javascript 的编译器,它可以作为语言翻译器,但在该网站的常见问题解答中最后一个问题表明它不会在 Chrome 上运行。( http://pyjs.org/ )

  2. FireBreath:FireBreath 是一个框架,可以轻松创建强大的浏览器插件。( http://www.firebreath.org )

  3. pyplugin - XULRunner 的 Python NPAPI 插件:它允许您使用 XUL 和 Python 构建跨平台的图形用户界面。( http://pyplugin.com )

请指导我使用最简单的方法,这将允许我传递参数并执行该 .py 文件并从 .py 接收返回的结果。

谢谢

4

1 回答 1

5

好吧,Pajamas Python Javascript Compiler 是不完整的——不是所有的 python 功能都在 javascript 中可用,所以不可能将所有的 python 转换为 javascript。这可能会或可能不会做你想要的,但我认为它不会“即时”发生,我认为你必须在桌面上写东西并通过“编译器”运行它才能让 javascript 从另一端出来。

FireBreath 是互联网上最令人惊叹的东西——我应该知道,因为我写了它——它绝对可以让你做你想做的事,但你必须知道如何在 Python 中使用 C++为了做你想做的事。也就是说,您可能可以使用 boost.python,它包含在 FireBreath 附带的 boost 子集中,但我从未使用过它,所以我不知道。您几乎可以使用 NPAPI 插件做任何您想做的事情,但您需要真正小心安全问题。

快速浏览一下 pyplugin 会发现 pyplugin 基本上就是您在 FireBreath 中编写的内容,但只是一个原始的 npapi 插件。如果这会做你想要的,这可能是最简单的方法。它被设计为与 XUL 一起使用,这可能是一个问题,因为 Chrome 不支持 XUL。你也可以修改它(因为它是 GPL)来做你想做的事。当然,如果您不打算发布源代码,那也可能是个问题。

解决问题的最快方法?好吧,您必须做出决定;这需要更多的研究,但我希望这至少足以让你开始。祝你好运!

于 2011-02-21T05:47:05.597 回答