fly63前端网

www.fly63.com

首页文章资源工具教程 栏目
  • 关于我们
  • 网站投稿
  • 赞助一下
搜索

在线工具_工作生活好帮手

打造各种简单、易用、便捷的在线工具,网友无需注册和下载安装即可使用

点击查看

关闭

提交网站

Pyodide
分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:https://pyodide.org/
GitHub:https://github.com/pyodide/pyodide
网站描述:一款用于在浏览器端实现Python全栈科学计算

Pyodide是Mozilla的一个独立社区驱动项目,它提供了一个完全在浏览器中运行的完整 Python 数据科学堆栈。它使用编译为WebAssembly的 CPython 3.8 解释器,并在Iodide(一种用于网络的实验性交互式科学计算环境)中使用 Python、NumPy、Pandas、Matplotlib、SciPy 等。

Pyodide项目的所做的事情:通过将成熟活跃的Python科学计算工具栈引入浏览器来满足数据科学计算的需要。Pyodide提供了一个完整的标准Python解释器,它完全在浏览器中运行,可以完全访问浏览器的Web api。

Pyodide 背后的想法是让科学家更好地使用网络。因此,该团队专注于更好地使用 Javascript 的方法,例如将现有的科学库编译为 WebAssembly 并将它们包装在易于使用的 JS API 中。他们提到 Mozilla 的 WebAssembly 向导提供了一个更高级的想法;如果许多科学家更喜欢 Python,那么该团队决定通过编译 Python 科学堆栈以在 WebAssembly 中运行来帮助他们。


Pyodide的工作流程如下:

  • 下载主流 Python 解释器(CPython)的源代码,以及科学计算包(NumPy 等);
  • 进行很小的调整以使其适应新环境;
  • 使用 emscripten 的编译器将它们编译为 WebAssembly。

如果你直接把这个 WebAssembly 输出加载到浏览器中,那么 Python 解释器就会和在操作系统中直接运行时有很大区别。例如,Web 浏览器没有文件系统(加载和保存文件的位置)。还好 emscripten 提供了一个用 JavaScript 编写的虚拟文件系统供 Python 解释器使用。默认情况下,这些虚拟“文件”会驻留在浏览器选项卡临时占用的内存里,页面关闭时它们就会消失。(emscripten 还为文件系统提供了一种在浏览器的本地存储空间中存储内容的方法,但 Pyodide 不用它。)

通过模拟文件系统和其它标准计算环境中的功能,emscripten 可以只用很少的调整就将现有项目迁移到 Web 浏览器中。(将来我们可能会转而使用 WASI 作为系统仿真层,但是现在 emscripten 是更成熟和完善的选择)。

总而言之,要在浏览器中加载 Pyodide,你需要下载:

用 WebAssembly 编译的 Python 解释器。

  • emscripten 提供的一些 JavaScript,用于系统仿真。
  • 一个打包的文件系统,包含 Python 解释器所需的所有文件,其中最重要的是 Python 标准库。

这些文件可能会非常大:Python 本身为 21MB,NumPy 为 7MB,依此类推。所幸这些包只需要下载一次,之后它们会存储在浏览器的缓存中。

将所有这些东西组合起来后,Python 解释器就可以访问其标准库中的文件,启动,然后开始运行用户代码了。


链接: https://fly63.com/nav/3666

more>>
相关栏目
webpack
webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起
官网GitHub
npm
javascript 最流行的包管理器
官网GitHub
yarn
可替代NPM的快速、可靠、安全的可信赖包管理工具Yarn
官网GitHub
bower
解决js的依赖管理
官网GitHub
grunt
基于Node.js的项目构建工具。它可以自动运行你所设定的任务
官网GitHub
Parcel
快速,零配置的 Web 应用程序打包器
官网GitHub
babel
Babel 是一个 JavaScript 编译器,可用下一代JavaScript 语法写代码
官网GitHub
browserify
一个浏览器端代码模块化工具,require和module.exports来导入和导出.Browserify的原理:部署时处理代码依赖,将模块打包为一个文件。
官网GitHub
HEAD
一份你可以在 <head> 里设置的列表
官网GitHub
Snibox
一个可自建托管的代码片段管理器
官网GitHub
Flow
Facebook 推出一个静态类型检测工具
官网GitHub
WeFlow
一个高效、强大、跨平台的前端开发工作流工具
官网GitHub
Athena
前端自动化流程构建工具
官网GitHub
Cooking
更易上手的前端构建工具
官网GitHub
vue-cli
一个基于 Vue.js 进行快速开发的完整系统
官网GitHub
Turborepo
一个用于 JavaScript 和 TypeScript monorepos 的高性能构建系统
官网GitHub

手机预览