可在浏览器端运行的Python, 再发力!

半年前,知名 Python 发行版 Anaconda 开发商推出了 PyScript —— 一款支持在浏览器中创建 Python 应用程序的框架。PyScript 基于 Pyodide 构建,Pyodide 由编译成 WebAssembly 的 CPython 3.8 解释器组成,允许在网页浏览器中运行 Python。Pyodide 可以安装来自 PyPi 的任何 Python 包。Pyodide 还包括一个外部函数接口,可以将 Python 包暴露给 JavaScript,并将浏览器 UI,包括 DOM,暴露给 Python。

c3abf8f7737a200f7b4635e5f7a1b5d4.png

根据官方的介绍,PyScript 是一个开发框架,为开发者提供了在标准 HTML 中嵌入编写 Python 代码的能力、使用 Python 调用 JavaScript 函数库,以及创建 Python Web 应用。PyScript 旨在提供“一等公民(first-class)”的编程语言,它具有一致的风格化规则、更具表现力且更易于学习。

9b5a2b5247d2e32b8e07dce7e30a908a.png

PyScript 示例代码

<py-script>
"Hello World"
</py-script>
<py-script src="/my_own_file.py"></py-script>
  <py-env>
- bokeh
- numpy
- paths:
  - /utils.py
  </py-env>

PyScript 核心特性

  • Python in the browser:启用 drop-in content、外部文件托管(基于 Pyodide 项目),以及不依赖服务器端配置的应用程序托管

  • Python 生态:提供流行的 Python 和科学计算软件包(例如 numpy, pandas, scikit-learn 等)

  • Python with JavaScript:在 Python 和 JavaScript 对象和命名空间之间进行双向通信

  • 环境管理:开发者可定义要引入哪些包和文件,以便页面代码的运行

  • 可视化应用开发:开发者可使用现成的 UI 组件,如按钮、容器、文本框等

  • 灵活的框架:开发者可以利用它在 Python 中直接创建和分享新的可插拔和可扩展的组件

PyScript 目标

  • 提供干净简单的 API

  • 支持标准 HTML

  • 扩展 HTML 以读取稳定且可靠的自定义组件

  • 提供可插拔、可扩展的组件系统

Anaconda 表示,为了让 PyScript 取得成功,他们必须对项目本身及其核心技术依赖进行战略性投资,例如 WebAssembly (Wasm) 和 Pyodide 开源项目(PyScript 的首选 runtime)。

ce10acca07e394470eb8a4ba1d021dc6.gif

基于上述目标,Anaconda 在过去的半年里一直在积极改进 PyScript 的技术基础设施,并在近日宣布加入了字节码联盟 (Bytecode Alliance),成为正式投票成员,希望帮助改进 Wasm 和 WASI 的标准。

Bytecode Alliance(字节码联盟)由 Mozilla、Fastly、Intel 与 Red Hat 联合成立,是一个推动 WebAssembly 标准化的组织,该联盟旨在通过协作实施标准和提出新标准,以完善 WebAssembly 在浏览器之外的生态。目前正在积极推动 WASI (WebAssembly System Interface),使 WebAssembly 能够安全地访问文件、网络和内存等系统资源。

在 Anaconda 看来,Wasm 对于 PyScript 起着至关重要的作用。类似的,WASI 在 Python 生态的 runtime 和模块中也扮演着至关重要的角色。他们希望与联盟合作共同推进这些标准。数据科学需要在任何地方都能运行 workload,比如本地 Python 环境、浏览器和云中 —— 这种可移植性是计算的未来。

除了加入字节码联盟,Anaconda 也在大力支持 PyScript 依赖的核心开源项目 Pyodide,比如为其上游贡献代码,以及支持正在进行的开发工作。他们认为 Pyodide 的成功就是 PyScript 的成功,虽然有许多项目都实现了将 Python 引入浏览器,但 Pyodide 在弥补跨语言代理、打包和模块支持方面的开发差距方面做得非常出色。而且 Pyodide 在可预见的未来将会是 PyScript 的默认 runtime。Anaconda 希望把它作为一个重要的依赖关系来支持,并充分认识到它为 PyScript 带来的价值。

虽然 Anaconda “押注” Pyodide,但同时也在积极尝试新的 runtime。最近他们展示了基于 MicroPython 的 PyScript 技术预览版,体验地址:https://pyscript.net/tech-preview/micropython/。

e5ba118b9d8379906bb07771a032d7b1.gif

Anaconda 表示,MicroPython 非常适合在缺少操作系统和资源有限的受限环境中运行。当他们在默认配置中将 MicroPython 应用到 Wasm 时,出现了令人兴奋的结果:这个新的 runtime 总大小仅为 303KB,可即时加载并在不到 100 毫秒的时间内开始执行 MicroPython 逻辑。

Anaconda 认为 MicroPython 也对 PyScript 发挥了重要作用,尤其是在许多加载性能存在问题的开发场景中。因为 PyScript 可通过配置来支持多种 runtime,所以开发者可根据场景选择最适合的方案。

来源 | OSC开源社区

推荐阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值