分享一个在浏览器里直接运行 Python 的小项目(使用 WebAssembly , WASM,无后端,纯静态)

92 天前
 huangsen365

大家好,

最近我折腾了一个小应用,想和大家分享,同时也欢迎对 WebAssembly WASM 或前端运行 Python 感兴趣的朋友一起交流。

项目地址: https://github.com/huangsen365/python-wasm-demo

项目背景

在 AI 大潮下,越来越多人多少都会接触到一点编程,Python 又是最容易入门的语言之一。但很多初学者在安装环境这一步就容易被劝退。于是我想到把 Python 运行时搬到浏览器里,省去安装过程,在任何地方都能随时练手。

项目基于 Pyodide ,将 Python 编译成 WebAssembly ,在浏览器端执行。整个应用是纯静态页面,不需要任何后端服务器。只要打开网页,就可以马上写 Python 代码并运行。

体验地址

特性

使用方式

  1. 打开在线 IDE ,右侧代码区就是编辑器。可以新建文件或打开已有示例文件。
  2. 点击 "Run" 或在终端内输入 python 文件名.py 直接运行,输出会显示在下方终端区域。
  3. 纯静态部署,自己下载后直接用任何静态服务器(甚至 file://)都能访问。也可以基于 Docker 镜像部署,在 README 中提供了示例。

未来计划

项目目前还比较简单,但希望能让更多想入门 Python 或对 WebAssembly WASM 感兴趣的朋友快速体验,欢迎大家提出建议或参与贡献。也欢迎在 V2EX 或仓库 Issues 区讨论,让我们一起探索在浏览器里跑 Python 的更多可能性。

3069 次点击
所在节点    Python
10 条回复
xiangpeng
92 天前
terminal 无法滚动显示后面的内容
jackOff
92 天前
建议往 uniapp 方向发展,这样子 python 也可以无脑简单开发安卓应用了
yangg
92 天前
现在还不支持加载库吗?
julyclyde
91 天前
@yangg 浏览器没有文件系统啊,从哪儿加载?
vfs
91 天前
大兄弟, 不好意思啊, 刚刚在你的 demo 页面写了个 while true, 页面直接卡死了
rustIsBest
91 天前
老哥,WASM 部分有开源计划吗
subframe75361
91 天前
@rustIsBest 直接搜 pyodide
512357301
91 天前
@vfs 其实只是你本地卡死了,压根儿不影响服务器端的。你看到的界面都是在本地生成的,交互也是虚拟出来的。等于是内嵌了一个微型操作系统。
liuhai233
91 天前
pyodide 挺难用的,很多库不兼容,不过你这种纯学习语法还不错,或者做成面试 IDE 挺好的
huangsen365
89 天前
@xiangpeng 感谢反馈~~~ 经过多次使用 https://claude.ai/ 的沟通反馈交流结合 Claude Code 把这个头痛的 bug 修复了。。之前简单的重复一直喊 Claude Code 和 Codex 去修复都没效果。。。后来只能间接的用一个引导的方法不断让 Claude 提供修复思路。。现在弄好了,感觉找到了 Vibe Coding 的真谛。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1139565

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX