pythonBrython浏览器中的

北京中科医院在哪里 https://yyk.familydoctor.com.cn/2831/map/

Brython:浏览器中的Python-第三篇

npm安装

如果您精通JavaScript生态系统,那么npm安装可能会吸引您。在执行此安装之前,需要Node.js和npm。

使用npm安装将使您的项目中的JavaScriptBrython模块像其他任何JavaScript模块一样可用。然后,您将能够利用自己喜欢的JavaScript工具来测试,打包和部署Brython解释器和库。如果您已经通过npm安装了现有的JavaScript库,则此安装是理想的。

注意:如果您的系统上未安装Node.js和npm,请考虑阅读本节的其余部分,以仅提供信息,因为您可以安全地跳过安装本身。本教程的其余部分不依赖于任何示例的npm安装方法。

假设您的系统上已安装npm,请通过在一个空目录中调用来创建默认package.json文件npminit--yes:

要将Brython集成到您的项目中,请执行以下命令:

您可以忽略警告,并注意Brython已添加到您的项目中。要确认,请打开package.json并确保您具有dependencies指向包含brython条目的对象的属性:

对于前面的示例,您可以创建以下内容index.html并使用浏览器将其打开。此示例不需要Web服务器,因为浏览器能够在node_modules/brython/brython.js本地加载JavaScript文件:

浏览器从中呈现URLindex.html并brython.js从scriptURL中加载index.html。在此示例中,您已经看到了利用JavaScript生态系统安装Brython的另一种方法。在本教程的其余部分中,您将编写依赖于CDN安装或PyPI安装的代码。

Brython安装选项概述

Brython在Python世界中占有一席之地,而在JavaScript中则占有一席之地。不同的安装选项说明了这种跨技术的情况。根据您的背景,选择对您来说最有吸引力的安装。下表为您提供了一些指导:

下表总结了可供您使用的不同安装选项。在下一部分中,您将详细了解Brython的工作原理。

了解布赖顿的运作方式

您对安装Brython的不同方法的浏览为您提供了有关实现工作原理的一些高级线索。这是到目前为止您在本文章中发现的一些特征的摘要:

这是JavaScript中的Python实现。它是Python到JavaScript的翻译器,也是在浏览器中执行的运行时。它公开了两个可作为JavaScript文件使用的主要库:brython.js是Brython语言的核心,如Brython核心组件中所述。brython_stdlib.js是Brython标准库。它会调用brython(),并script使用text/python类型编译标签中包含的Python代码。在以下各节中,您将更详细地了解Brython的工作原理。

Brython核心组件

Brython的核心包含在Brython引擎的最小版本中brython.js或brython.min.js之中。两者都包含以下关键组件:

brython()是JavaScript全局命名空间中公开的主要JavaScript函数。如果不调用此函数,则无法执行任何Python代码。这是您必须显式调用的唯一JavaScript函数。__BRYTHON__是一个JavaScript全局对象,其中包含运行Python脚本所需的所有内部对象。编写Brython应用程序时不会直接使用此对象。如果您同时查看JavaScript和Python的Brython代码,则会看到的常规出现__BRYTHON__。您不需要使用该对象,但是当您看到错误或要在浏览器控制台中调试代码时,应注意该对象。内置类型是JavaScript中Python内置类型的实现。例如,py_int.js,py_string.js和py_dicts.js是各自的实施方式int,str和dict。browser是浏览器模块,用于公开前端Web应用程序中常用的JavaScript对象,例如使用的DOM接口document和使用该window对象的浏览器窗口。在学习本文章中的示例时,您将看到这些组件中的每个组件都在起作用。

现在,您已经对Brython核心文件有了一个整体的了解,现在您brython.js将了解其伴随文件brython_stdlib.js。

brython_stdlib.js公开Python标准库。生成此文件后,Brython将Python标准库编译为JavaScript,并将结果连接到bundle中brython_stdlib.js。

Brython旨在尽可能接近CPython(Python参考实现)。有关CPython的更多信息,请查看《CPython源代码和CPython内部指南》。

由于Brython在Web浏览器的上下文中运行,因此存在一些限制。例如,浏览器不允许直接访问文件系统,因此os.open()无法打开文件。与网络浏览器无关的功能可能无法实现。例如,下面的代码在Brython环境中运行:

os.unlink()引发异常是因为从浏览器环境中删除本地文件并不安全,并且FileandDirectoryEntriesAPI只是草案。

Brython仅支持本机Python模块。除非已在JavaScript中重新实现,否则它不支持C内置的Python模块。例如,hashlib用CPython用C语言编写,并用Brython中的JavaScript实现。您可以查阅Brython发行版中的模块列表,以与CPython实现进行比较。

您需要包括brython_stdlib.js或brython_stdlib.min.js从Python标准库中导入模块。

此时,您可能想知道Brython在仅知道其JavaScript引擎的浏览器中的行为。重用前面的示例和浏览器中提供的工具,您将了解在浏览器中执行Python代码所涉及的过程。

在CDN服务器安装部分中,您看到了以下示例:

加载和解析HTML页面后,请brython()执行以下步骤:

读取元素中包含的Python代码scripttype=text/python将Python代码编译为等效的JavaScript使用以下代码评估生成的JavaScript代码eval()在上面的示例中,Python代码嵌入在HTML文件中:

另一个选择是从单独的文件下载Python代码:

在这种情况下,Python文件将如下所示:

将Python代码与HTML代码分开是一种更简洁的方法,它使您可以利用代码编辑器的优势和功能。大多数编辑器都支持HTML中的嵌入式JavaScript,但不支持HTML中的嵌入式Python。

#python#




转载请注明:http://www.aierlanlan.com/tzrz/919.html