【问题标题】:Execute python code inside browser without Jython在没有 Jython 的情况下在浏览器中执行 python 代码
【发布时间】:2026-01-18 02:15:01
【问题描述】:

除了使用 Jython 和小程序之外,还有其他方法可以在浏览器中执行 python 代码吗?

执行不必处理与图形相关的任何事情。例如,只需将二进制 1Gb 文件(由浏览器用户选择)的所有数字相加,然后将结果返回给服务器。

我知道python can be executed remotely 在浏览器之外,但我的要求是在浏览器内完成。

当然,我认为用户将保留执行或不执行的权利是理所当然的,并且会被要求这样做,以及所有这些安全问题......但这不是我的问题。

【问题讨论】:

  • 我假设 python 的本地安装在客户端。
  • 您需要在客户端安装 Python Win32 扩展,您就可以像使用 VBScript 和 JScript 一样使用 Python。
  • 我能问一下你在找什么吗?为什么它必须在浏览器上运行客户端?可能你需要另一个工具。客户端应用程序/脚本或服务器端代码。
  • 请您澄清一下您的问题:(1)必须支持哪些浏览器?仅限 IE? (2) 必须支持哪些客户端操作系统?仅限 Windows 吗? (3) 解决方案中可以使用哪些类型的浏览器插件?土坯?银光?必须在每个系统上安装的自定义插件?
  • Answer(1): 我想要尽可能多的浏览器。至少:Firefox、Chrome、Safari、IExplorer、Opera。答案(2):至少:Linux(所有风格)、Windows XP SP2 和追随者、MacOS 答案(3):任何可以回答我问题的。是的,客户可以安装自定义插件。

标签: python browser remote-execution


【解决方案1】:

Pyjamas 项目有一个名为 pyjs 的编译器,它可以将 Python 代码转换为 Javascript。

【讨论】:

  • 在我的回答中查看比例的评论。
  • 是的,他遇到了沙盒问题。
【解决方案2】:

nosklo 的回答是错误的:pyxpcomext for firefox 将 language="python" 支持添加到脚本标签。是的,这是一个高达 10mb 的插件,但这就是生活。我认为最好参考http://wiki.python.org/moin/WebBrowserProgramming,因为那里记录了所有已知的 Python 和 Web 浏览器技术之间的文档链接:您可以在那里选择。

【讨论】:

    【解决方案3】:

    不久前,我整理了一张表格,比较了许多 Python-In-Browser 技术: http://stromberg.dnsalias.org/~strombrg/pybrowser/python-browser.html

    【讨论】:

    • 现在已备份。今天早上我的互联网连接出现问题。
    【解决方案4】:

    在我的旅行中,我遇到了Skulpt,这个项目似乎直接在浏览器中提供了 Python,没有插件。它已获得 MIT 许可。

    Skulpt Homepage

    Skulpt @ Github

    【讨论】:

      【解决方案5】:

      不,你不能。

      现代浏览器只运行 javascript 或插件。您可以开发自己的 python 插件并说服人们下载并运行它,但我想这属于“不在浏览器内部”类别。

      【讨论】:

      • Silverlight、Flash、Java (Jython) 都是插件 - 浏览器执行 python。
      • 如果有这样一个浏览器可以启动的插件,对我来说可能属于“内部浏览器”类别。
      • 你可以写一个插件来运行python。说服用户安装它是另一回事。
      • 是的,当然。正如我在问题中所说,这让我不担心。
      【解决方案6】:

      你的意思是客户端?

      Sure you can!但是你需要先在客户端安装python。

      链接的书描述了为了使用客户端活动脚本,您可以使用简单的html 文件对其进行测试。

      <html><body>
      <script language='Python'>alert("Hello, Python!")</script>
      </body></html>
      

      在那本书中提到的旧版本(Win32上的Python编程 马克·哈蒙德、安迪·罗宾逊) 它说你需要安装Python Win32 extensions,它会自动注册Python Active Scripting。如果您手动执行此操作,则必须运行脚本python\win32comext\axscript\client\pyscript.py

      【讨论】:

      • 不知道 FF 的状态,也无法测试我的 Windows 虚拟机:S
      • 很好的尝试,但在您的参考资料的第 438 页中说 IE 不会让 python 打开,本地文件也不会打开套接字。我想知道其他不在 Redmond 方面的浏览器会发生什么。
      • 你是对的,你会被沙箱化,就像JScriptVBScript一样。您可以将其用作javascript 的替代品,但我认为这不值得。您仍然必须将服务器用于低级别(文件、套接字等)操作。我能问一下你在找什么吗?为什么它必须在浏览器上运行client side?可能你需要另一个工具。客户端应用程序/脚本或server side 代码。
      【解决方案7】:

      http://repl.it/ - 在客户端运行的 JavaScript 中的 Python 解释器。还有很多其他语言。源代码在 MIT 许可下可用,非常棒。

      【讨论】:

        【解决方案8】:

        您现在(2016 年)也可以使用:

        http://www.transcrypt.org

        它将 Python 3.6(包括多重继承、运算符重载、所有类型的推导、生成器和迭代器)编译为精简和快速的 JS,支持使用 sourcemap 进行源代码级调试和使用 mypy 进行可选的静态类型检查。

        免责声明:我是该项目的发起人。

        【讨论】:

          【解决方案9】:

          我偶然听了 Hanselminutes ,他提到了格式塔项目。这是通过 Silverlight 在浏览器中集成 IronRuby 和 IronPython 等语言的解决方案。

          所以如果你没有任何特殊的插件,我认为答案是否定的。

          【讨论】:

            【解决方案10】:

            Brython - “用于客户端 Web 编程的 Python 3 实现”

            【讨论】:

              最近更新 更多