Brython 如何工作17 Mar 2025 | 5 分钟阅读 要理解Brython的工作原理,我们首先需要使用我们偏好的方法安装Brython,这我们在“如何安装Brython”文章中已经讨论过。 在讨论Brython的工作原理之前,我们需要了解几件事
在本文中,我们将讨论Brython的核心组件、标准库以及它的工作原理。 Brython核心组件brython.js和brython.min.js(Brython引擎的最小化版本)包含Brython的核心组件。它们都包含以下关键组件: brython.js和brython.min.js(Brython引擎的最小化版本)包含Brython的核心组件。它们都包含以下关键组件:
Brython标准库在了解了核心Brython文件brython.js之后,我们将学习其配套文件brython_stdlib.js。 Python标准库由brython_stdlib.js暴露。在生成brython_stdlib.js文件后,Brython可以将Python标准库编译成JavaScript,并将结果链接到brython_stdlib.js包中。 Brython力求接近CPython,即Python的首选实现。由于Brython在网站浏览器的上下文中运行,它有一些限制,例如浏览器不允许直接访问文件系统,因此,os.open()函数无法打开文件。与网站浏览器无关的函数无法实现。 例如 # 在Brython环境中运行代码 输出 TypeError Traceback (most recent call last) <ipython-input-1-85e82a7fc62f> in <module> 1 import os ----> 2 os.unlink() TypeError: unlink() missing required argument 'path' (pos 1) 这里,os.unlink()会引发一个异常,因为它在浏览器环境中删除本地文件不安全,而File and Directories Entries API只是一个默认提议。 Brython只支持原生Python模块。它不支持用C编写的Python模块,除非它们已经用JavaScript重新实现。例如,hashlib模块是用C编写的,在Brython中用JavaScript实现。用户和开发者还可以参考Brython发行版中的模块列表来与CPython实现进行比较。 用户需要包含brython_stdlib.js和brython_stdlib.min.js才能从Python标准库导入模块。 Brython工作原理现在,让我们看看Brython如何在浏览器中工作,而浏览器只了解其JavaScript引擎。我们将通过一个例子以及浏览器中可用的工具来理解这一点。我们将学习在浏览器中执行Python代码所涉及的过程。 例如 加载和解析HTML页面后,brython()将执行以下步骤: |