在一个非常特定的应用程序上从 firefox 执行 python 脚本,只是为了让 firefox 提供图形 IDE

Posted

技术标签:

【中文标题】在一个非常特定的应用程序上从 firefox 执行 python 脚本,只是为了让 firefox 提供图形 IDE【英文标题】:Execute a python script from firefox, on a very specific app, just to let firefox provide the graphical IDE 【发布时间】:2011-09-15 22:43:24 【问题描述】:

所以,我一直在搜索这个主题很长一段时间,但我无法确定它是否可能。我怀疑不是,但我需要确定。

我在做什么: 我正在构建一个使用 xml、xsl 和 javascript 的精美网络应用程序。但是,我需要对文本文件进行一些转换以将其转换为正确的 xml 文件。为此,我使用了一个 python 脚本。

我需要什么: 我正在努力使应用程序的使用尽可能简单,但是当用户必须先执行终端脚本时,这会被破坏。我需要一个用于 python 的图形 IDE,但我只是没有时间学习如何制作一个,我希望整个应用程序能够在同一个 Web 环境中工作,对用户来说更直观。然后,一个非常简单的方法是使用 Firefox 作为 IDE,例如选择要通过它转换的文件,然后从那里启动 python 脚本。

我需要什么: 我只需要与 Firefox 兼容。当然,任何能够安装 Python 和 Firefox 的系统都应该可以正常工作。只要用户对应用感兴趣,他们就会很乐意安装这两个程序。

我不知道的: 有可能执行外部python脚本吗?如果没有,出于安全原因,我想,用户有什么办法允许它吗?也许通过安装插件?

也许http://mozex.mozdev.org/ 是我要找的?

谢谢!

杰拉德

【问题讨论】:

【参考方案1】:

是的,可以执行外部 python 脚本。您可以使用simpleServer (example) 从您的页面接收 (Ajax) 请求并调用 subprocess 或 os.startfile 来启动脚本。实际上,您可以从服务器内部调用函数本身并将结果(例如 json)返回到页面并使用您的 javascript 来处理它。

【讨论】:

是的,这是一个选项,但这需要用户执行 python 脚本(在这种情况下,一个服务器,现在,只是一个脚本),并在启动 .html 文件后使用火狐。由于增加了复杂性,在整个过程之后,用户应该关闭服务器。所以实际上我不会简化这个过程(我最初的目标)。 (谢谢回答!) 我看到您希望用户只打开和关闭一个文件/程序。如果您可以让服务器连续运行,您可以编写一个脚本来检查服务器是否已经在运行(如果没有,则启动它),并启动os.starfile('interface.html')。这样,用户只能看到(网络浏览器)界面,该界面本身通过小型服务器与您的 Python 脚本进行通信。如果用户关闭浏览器,服务器会继续运行,但这并不重要(非常小)。下次运行主脚本时,不需要实例化新的服务器。 我拥有的选项是:a)Web 服务器处理 IDE(firefox)和脚本(python)之间的通信 b)pythonext,以便用户可以(我忽略如何,但是我想可以做到)可以使用FF来执行scrypt,例如发送要处理的文件。 c) 一个带有 GUI 的独立脚本,以便用户轻松使用它。 a) 选项要求用户安装 firefox 和服务器,或者自己构建服务器的 python 脚本。我的意图是每个用户拥有一台计算机,这样每个用户都应该至少启动一次服务器。 b) 选项,用户需要安装FF和扩展。到目前为止,这是更舒适的选择。 c) 需要用户启动 2 个程序,与 a) 选项非常相似。在 a) 和 c) 之间,我不确定什么是更好的选择。 a) 避免我构建一个 IDE,但我会说给用户带来了更多的复杂性。 b)选项是最好的,但对我来说完全模糊。 pythonext 将使用限制在 FireFox。如果你在这个阶段没有充分的理由限制自己,那么我建议你不要这样做。根据您程序的复杂性,GUI 可能是一个有趣的选项,还因为您可以使用Py2Exe 创建它的独立版本,无需安装 Python。就我个人而言,我两者都做过,但由于 GUI 编程的灵活性和使用 jquery 的易用性,我成为了使用浏览器作为 IDE(通过您的选项 a)的粉丝。【参考方案2】:

如果你是在firefox中实际使用python,而不是用python编写服务器端(尽管网络服务器当然可以在本地运行),我猜pythonext(以前是pyxpcomext)是你需要什么。

【讨论】:

我能闻到这就是我要找的东西。我去看看你能用它做什么,非常感谢! (该死,它不是 python3,我想毕竟我将不得不重新编写所有内容并最终放弃 python3,这是我不想这样做的,但现在好像 python3 不是一个选项(例如,没有SOAP 客户端))

以上是关于在一个非常特定的应用程序上从 firefox 执行 python 脚本,只是为了让 firefox 提供图形 IDE的主要内容,如果未能解决你的问题,请参考以下文章

在 Ethereum Remix JavaScript VM 上从特定账户执行solidity合约方法

在 Chrome 上从 S3 下载 PDF 的问题

仅在单元格中的特定 UIImage 上从 UITableView 推送详细信息视图?

在 Windows 上从 PHP 读取 Microsoft Excel 文件

如何在 iOS 上从 Web 下载原始字节

如何在 Android 上从我的应用程序启动 URL?