何为Pyodide?
Pyodide是CPython的WebAssembly/Emscripten移植版本,允许开发者在浏览器和Node.js环境中运行Python代码。它的诞生消除了在Web环境中无法直接使用Python的障碍。通过Pyodide,开发人员可以利用Python丰富的生态系统,将数据分析、科学计算等功能直接集成到网页中。
Pyodide的强大功能
1. 包管理支持
Pyodide内置了micropip包管理功能,便于用户在浏览器中安装和运行Python包。只要是PyPi上提供wheel包的纯Python包,都可通过Pyodide进行安装和使用。此外,众多C扩展包(如NumPy、pandas、Matplotlib等)也已被移植至Pyodide。2. 无缝的语言互操作性
Pyodide提供了强大的JavaScript与Python之间的外部函数接口,使得开发者能够在代码中灵活混合使用这两种语言。该接口支持错误处理、async/await,极大地减小了两者之间的摩擦,使得Python的使用体验更加流畅。3. 访问Web API
在浏览器中运行时,Python具备对Web API的完全访问权限,这使得开发者能够轻松地利用现代网页特性来增强Python应用。
如何开始使用Pyodide
如果你渴望体验Pyodide,以下是几种不同的开始方式:
• 使用托管的Pyodide发行版:通过访问官方文档,你可以轻松上手。
• 下载Pyodide版本:从发布页面下载适合的Pyodide版本并在本地搭建你的Web服务器。
• 从源代码构建:适合想要深入参与项目的开发者,可以使用make指令在Linux环境中构建。
• 利用Docker镜像:Windows和macOS用户超推荐的选择,简化了依赖关系的安装过程。
Pyodide的代码示例
在开始使用Pyodide之前,你需要复制并粘贴以下完整的HTML代码示例,这将构建一个基本的Pyodide测试页面:
<!doctype html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/pyodide/v0.26.4/full/pyodide.js"></script>
</head>
<body>
Pyodide test page <br>
Open your browser console to see Pyodide output
<script type="text/javascript">
asyncfunctionmain(){
let pyodide =awaitloadPyodide();
console.log(pyodide.runPython(`
import sys
sys.version
`));
pyodide.runPython("print(1 + 2)");
}
main();
</script>
</body>
</html>
运行Python代码
在这个示例中,pyodide.runPython()
函数用于执行给定的字符串形式的Python代码。举个例子,如果你的Python代码以表达式结尾,该函数会返回结果并将其转为JavaScript对象。通过简单的调用,你将轻松获得Python版本字符串或进行计算。
小结
Pyodide作为一款面向Web的Python发行版,不仅仅是一个工具,更是将Python程序员的梦想带入现实。其便捷的包管理、无缝的语言互操作性以及对Web API的访问能力,使得开发者能够在现代浏览器中体验Python的乐趣。全新技术的崛起让我们不再束缚于传统的开发方式,Pyodide为我们的创作之路打开了一扇全新的大门。
项目地址:https://github.com/pyodide/pyodide