
本文介绍如何通过 pyscript 的 `src` 属性将外部 `.py` 文件链接到 html 页面,实现逻辑与界面分离,避免内联代码杂乱,并解决包导入问题。需配合本地 http 服务器运行。
在 Web 前端中直接运行 Python 代码并非原生支持,但借助 PyScript(一个基于 WebAssembly 的 Python 运行时),你可以在浏览器中执行 Python。关键在于:不能像
✅ 正确做法:使用 + 本地 HTTP 服务
-
准备文件结构
my-game/ ├── index.html └── game_logic.py
-
在 index.html 中引用外部 Python 文件
My Python Game ? My Browser Game
-
编写 game_logic.py(示例)
立即学习“Python免费学习笔记(深入)”;
# game_logic.py from pyscript import display def start_game(): display("Welcome to the Python Game!", target="output", append=False) # 自动执行初始化(PyScript 会立即运行此脚本) start_game() -
启动本地 HTTP 服务器(必需!)
在 my-game/ 目录下运行:python -m http.server 8000
然后访问 http://localhost:8000 —— 此时 ./game_logic.py 可被正确加载为相对 URL。
⚠️ 重要注意事项
- ❌ 不要写 src="file:///path/to/game_logic.py":浏览器会因 CORS 和安全限制拒绝加载本地 file:// 协议资源。
- ✅ 所有资源(HTML、.py、依赖包)必须通过 http:// 或 https:// 提供;PyScript 不支持跨域加载(除非服务端配置了 CORS)。
- ? 第三方包需显式声明:若 game_logic.py 使用 numpy 或 pygame(注意:pygame 不支持 浏览器环境),需在 HTML 中通过
指定: packages = ["numpy"] - ? 调试技巧:打开浏览器开发者工具(F12)→ Console 标签页,查看 PyScript 加载日志和报错信息;网络(Network)标签可确认 .py 文件是否成功加载。
? 总结
将 Python 逻辑拆分为独立 .py 文件并用











