V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
huangsen365
V2EX  ›  Python

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

  •  
  •   huangsen365 · 23 天前 · 2586 次点击

    大家好,

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

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

    项目背景

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

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

    体验地址

    特性

    • 完全前端运行: 所有代码执行都在浏览器中完成,无需部署后端。
    • 基本类 VSCode 的编辑体验: 集成 Monaco Editor ,支持多文件管理和简单的文件系统(页面刷新前保存在内存中)。
    • 示例教程: 内置若干 Python 示例文件,适合新手跟着练习。
    • 可自定义扩展: 项目源代码开放,欢迎大家 Star 、Fork 、提 Issue 或 PR 。

    使用方式

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

    未来计划

    • 增强文件持久化能力,让用户可以选择存到浏览器的 IndexedDB 或下载到本地。
    • 支持更多 Python 库的加载,或提供自定义离线包。
    • 期待有兴趣的小伙伴一起讨论、完善、写教程等。

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

    10 条回复    2025-06-22 01:17:06 +08:00
    xiangpeng
        1
    xiangpeng  
       23 天前   ❤️ 1
    terminal 无法滚动显示后面的内容
    jackOff
        2
    jackOff  
       23 天前
    建议往 uniapp 方向发展,这样子 python 也可以无脑简单开发安卓应用了
    yangg
        3
    yangg  
       23 天前
    现在还不支持加载库吗?
    julyclyde
        4
    julyclyde  
       23 天前
    @yangg 浏览器没有文件系统啊,从哪儿加载?
    vfs
        5
    vfs  
       23 天前
    大兄弟, 不好意思啊, 刚刚在你的 demo 页面写了个 while true, 页面直接卡死了
    rustIsBest
        6
    rustIsBest  
       23 天前
    老哥,WASM 部分有开源计划吗
    subframe75361
        7
    subframe75361  
       23 天前 via Android   ❤️ 1
    @rustIsBest 直接搜 pyodide
    512357301
        8
    512357301  
       23 天前 via Android
    @vfs 其实只是你本地卡死了,压根儿不影响服务器端的。你看到的界面都是在本地生成的,交互也是虚拟出来的。等于是内嵌了一个微型操作系统。
    liuhai233
        9
    liuhai233  
       22 天前
    pyodide 挺难用的,很多库不兼容,不过你这种纯学习语法还不错,或者做成面试 IDE 挺好的
    huangsen365
        10
    huangsen365  
    OP
       20 天前
    @xiangpeng 感谢反馈~~~ 经过多次使用 https://claude.ai/ 的沟通反馈交流结合 Claude Code 把这个头痛的 bug 修复了。。之前简单的重复一直喊 Claude Code 和 Codex 去修复都没效果。。。后来只能间接的用一个引导的方法不断让 Claude 提供修复思路。。现在弄好了,感觉找到了 Vibe Coding 的真谛。。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2589 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:38 · PVG 21:38 · LAX 06:38 · JFK 09:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.