Pyodide:一个基于 WebAssembly 的 Python 发行版
Pyodide: a Python distribution based on WebAssembly

原始链接: https://github.com/pyodide/pyodide

Pyodide 使用 WebAssembly 将 Python 引入浏览器和 Node.js,有效地移植了 CPython,并能够在 Web 环境中直接使用 Python 包。它支持来自 PyPI 的大量纯 Python 包,以及许多带有 C、C++ 和 Rust 扩展的包——包括 NumPy、pandas 和 Matplotlib 等流行的库。 其主要特性是无缝的 JavaScript-Python 互操作性,允许开发者轻松结合使用这两种语言。在浏览器中运行时,Python 代码可以完全访问 Web API。 Pyodide 最初由 Mozilla 于 2018 年作为 Iodide 项目的一部分创建,现在是一个独立的、社区驱动的开源项目。它包含一个修改后的 CPython 构建、JS/Python 接口、JavaScript 解释器管理工具以及一个交叉编译工具链。你甚至可以直接在浏览器中通过 REPL 试用它——无需安装!

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Pyodide:一个基于 WebAssembly 的 Python 发行版 (github.com/pyodide) 9 分,by tosh 2 小时前 | 隐藏 | 过去 | 收藏 | 3 评论 帮助 yawnxyz 11 分钟前 | 下一个 [–] 没有,但它与 Observable 和 d3js 结合使用效果很好,可以制作漂亮的交互式内容!回复 jacob019 26 分钟前 | 上一个 | 下一个 [–] 有人用它和 nodejs 来为代码代理创建一个沙箱吗?回复 jcheng 15 分钟前 | 父评论 | 下一个 [–] 对于这个目的,我认为大多数人都在使用 bubblewrap 或 seatbelt/sandbox-exec 与 CPython。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

NPM Latest Release PyPI Latest Release Build Status Documentation Status

Pyodide is a Python distribution for the browser and Node.js based on WebAssembly.

Pyodide is a port of CPython to WebAssembly/Emscripten.

Pyodide makes it possible to install and run Python packages in the browser with micropip. Any pure Python package with a wheel available on PyPi is supported. Many packages with C, C++, and Rust extensions have also been ported for use with Pyodide. These include many general-purpose packages such as regex, PyYAML, and cryptography, and scientific Python packages including NumPy, pandas, SciPy, Matplotlib, and scikit-learn.

Pyodide comes with a robust Javascript ⟺ Python foreign function interface so that you can freely mix these two languages in your code with minimal friction. This includes full support for error handling, async/await, and much more.

When used inside a browser, Python has full access to the Web APIs.

Try Pyodide (no installation needed)

Try Pyodide in a REPL directly in your browser. For further information, see the documentation.

The Components of the Pyodide Project

The Pyodide project consists of the following components:

  1. A build of CPython with a few patches (https://github.com/pyodide/pyodide/tree/main/cpython/)
  2. A JS/Python foreign function interface (https://github.com/pyodide/pyodide/tree/main/src/core and https://github.com/pyodide/pyodide/tree/main/src/py)
  3. JavaScript code for creating and managing Pyodide interpreters (https://github.com/pyodide/pyodide/tree/main/src/js)
  4. A choice of Emscripten platform, which consists of a version + ABI-sensitive flags + static libraries to link. This is described here and implemented in (https://github.com/pyodide/pyodide/tree/main/Makefile.envs)
  5. A toolchain for cross compiling testing and installing packages for Pyodide.

Pyodide was created in 2018 by Michael Droettboom at Mozilla as part of the Iodide project. Iodide is an experimental web-based notebook environment for literate scientific computing and communication.

Iodide is no longer maintained. If you want to use Pyodide in an interactive client-side notebook, see Pyodide notebook environments.

Please view the contributing guide for tips on filing issues, making changes, and submitting pull requests. Pyodide is an independent and community-driven open-source project. The decision-making process is outlined in the Project governance.

For a full list of current and historical sponsors, please see the Funding section of our About page.

Pyodide also has a large number of small donors. If you’re interested in supporting Pyodide, check out our OpenCollective and GitHub Sponsors pages.

Pyodide uses the Mozilla Public License Version 2.0.

联系我们 contact @ memedata.com