4 步跑通 PyScript 配置与部署:从 make setup 到静态托管的实战清单

发布时间:2026/10/31 17:39:36

4 步跑通 PyScript 配置与部署:从 make setup 到静态托管的实战清单 4 步跑通 PyScript 配置与部署从 make setup 到静态托管的实战清单【免费下载链接】pyscriptAn open source platform for Python in the browser. https://pyscript.net Docs: https://docs.pyscript.net/ Try it: https://pyscript.com/ Community: https://discord.gg/HxvBtukrg2项目地址: https://gitcode.com/gh_mirrors/py/pyscript这一篇是维护 PyScript 期间积累的配置部署笔记覆盖本地构建、py-config三种写法的冲突规则、用事件链定位加载卡点、Worker 配置三要素、静态托管上线时的响应头要求以及上线前该查什么。假设你会 git 和 npm不需要先读懂 polyscript 的启动逻辑。1 环境准备先构建出 core/dist 运行时这一节帮你解决「本地没有可测试的 PyScript 构建产物」的问题。node 20、npm 6、Python 3.8版本不达标make setup会直接报红拒绝安装仓库根目录执行make setup检查版本后执行cd core npm ci并在已激活的 venv/conda 环境里装 requirements.txtblack、pre-commit 等工具链make build在 core 下跑 playwright chromium 安装加完整构建产物落在core/dist/PyScript 页面只依赖两份产物core.css和core.jshead里引用完正文用script typepyPyodide或script typempyMicroPython就能跑 Python。这里有个坑构建会重新生成src/stdlib/pyscript.js把src/stdlib/pyscript/里全部 Python 内嵌成一个 JS 对象和插件入口文件带// ⚠️ This file is an artifact: DO NOT MODIFY头的文件改了一定被覆盖机制见 core/README.md。日常调试别跑完整 build用npm run devchokidar 监听core/src/只重建 stdlib、plugins 和 core 且不压缩改完几秒内生效npm run server则起一个带正确响应头的静态服务器测试页在http://localhost:8080/tests/。2 配置体系一个页面只允许一份全局配置这一节帮你解决「配了 packages 却没生效」这类问题——多半是配置本身被判定为冲突根本没被解析。解析入口在 core/src/config.js规则可以背下来全局配置二选一py-config标签或给script typepy config...加config属性两者同时出现抛CONFLICTING_CODEAmbiguous py-config VS config attribute标签只能有一个多个同样抛错Too many py-config多个脚本带config属性时必须指向同一个文件否则报 Unable to use different configs on main配置内容支持内联或文件 URL格式按扩展名判断.json走 JSON、.toml走 TOML也可用type属性强制。常见键packages [numpy]装哪些包远程自定义包需另开experimental_remote_packages truefiles路径映射把本地文件拷进虚拟文件系统VFS如./src - ./runtime见 config.json 示例plugins [!error]!前缀关闭内置插件错误页示例 就是用它放行 stderrexperimental_ffi_timeout 100调整 Python 调 JS 的超时单位毫秒写自己的 config.toml 时建议照抄仓库测试目录里的最小写法先跑通再改别一上来堆键。3 调试方法事件链定位加载卡点这一节帮你解决「页面白屏不知道卡在哪一步」。PyScript 把生命周期暴露成 DOM 事件py:progressdetail 是Loading xxx/Loaded xxx加载阶段可配合console.time计时、每个脚本的py:done、以及 all-done.js 在所有脚本就绪后派发的py:all-done。测试页里的监听代码可以直接抄script addEventListener(py:progress, ({ detail }) console.log(detail)); addEventListener(py:all-done, () console.log(all scripts ready)); /script再开 DevTools 的 Console 和 NetworkPython 报错、fetch 失败基本无所遁形。想关掉页面上的红色错误卡片比如演示环境不想暴露堆栈就用第 2 节说的plugins [!error]而不是删控制台输出。4 Worker 配置三要素type、config、files这一节帮你解决「主线程被算爆、页面掉帧」的问题。先说结论主线程单次阻塞超过 200ms 掉帧CPU 密集活必须挪进 Web Worker。写法上给script typepy worker加worker属性或在主线程脚本里用PyWorker显式建一个注意PyWorker 只能在主线程创建worker 内部会抛NotSupportedfrom pyscript import PyWorker worker PyWorker(./worker.py, typepyodide, config./config.json) await worker.ready这就是三要素type定解释器pyodide全量 CPython、micropython轻量版config复用第 2 节那套体系给 worker 单独配packagesfiles把 worker 要用的.py映射进它的 VFS参考 worker 测试。这里有个坑worker 里代理window/document依赖 SharedArrayBuffer它要求响应带 COOP/COEP 头。头缺失时 worker 内pyscript.window是NotSupported占位如果本就不需要碰 DOM配sync_main_only true可消掉那条警告no_sab 示例 演示了这条路径。5 生产部署静态托管 两个响应头这一节帮你解决「本地能跑上线后 worker 全挂」的问题。PyScript 应用是纯静态站点Nginx、Netlify、Vercel 都行托管core/dist加你的页面即可。但有两个响应头必须在服务器上配好本地npm run serverstatic-handler --coi和make servemini-coi替你做了这件事仓库里 mini-coi.js 能看到具体值Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: require-corp缺了这俩第 4 节的 worker DOM 代理就不可用用了 COEP 后页面里所有跨域资源都得带 CORP 标记第三方资源没配会整页加载失败这是最常见的上线事故。上线前检查清单make build全绿它会先跑 pre-commit 和 oxlint收尾自动执行 playwright 集成测试JS 测试加 Python 测试在 mpy/py 双解释器、主线程/worker 四种组合下各跑一遍dist/core.js、dist/core.css的相对路径引用无误页面监听py:all-done做加载完成的最终确认别只信py:ready想压体积用npm run size看 dist 各文件的 brotli 大小再精简packages6 踩坑回查表与扩展方向这一节帮你解决「上线一周后偶发报错」的反查效率问题。控制台出现CONFLICTING_CODE/BAD_CONFIG回第 2 节对照标签与config属性是否混用包装不上先核对packages拼写和可达性装远程自定义包确认experimental_remote_packages已开远程包示例 给了完整形态worker 里pyscript.window抛NotSupportedSharedArrayBuffer 不可用检查响应头或改走sync通道、配sync_main_only truePython 调 JS 卡死给experimental_ffi_timeout设一个明确的毫秒上限让它可预期地抛错而不是无限挂起扩展方向是插件内置插件在 core/src/plugins/新建插件只要加一个入口文件构建器会按名字在 dist 里产出独立 chunk不增大core.js体积第三方插件不用进仓库页面里import pyscript/core后动态加载即可py-editor、py-terminal、py-game都是现成参照。收尾给你下一步把第 2 节的 TOML 写进自己的项目make build全绿后用第 3 节的事件监听确认一次完整加载链路再对照第 5 节清单把响应头加到服务器上。【免费下载链接】pyscriptAn open source platform for Python in the browser. https://pyscript.net Docs: https://docs.pyscript.net/ Try it: https://pyscript.com/ Community: https://discord.gg/HxvBtukrg2项目地址: https://gitcode.com/gh_mirrors/py/pyscript创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/31 17:39:36

智慧地铁大屏 · 19 个组件完整操作手册

所以下面每个组件都要新建一个 SQL 数据集,不是一个数据集做所有图。1. 通用套路(19 个组件都照这个做)1.1 第 1 步:建 SQL 数据集公共数据 → 智能地铁数据 → 【新建数据集】 → 选「SQL 数据集」↓ 数据连接:…

2026/10/31 17:39:36

MySQL-数据库服务日志管理与数据闪回

一、数据库中存在什么日志1. 错误日志默认存在,位置在数据目录中,文件名为"主机名称.err":[rootdb02 data]# ll /data/3306/data/db02.err -rw-r----- 1 mysql mysql 2694183 10月 21 10:51 db02.err设置生成错误日志文件&#xff…

2026/10/31 17:39:36

helm项目管理

一、部署与helm基本操作1.源码二进制方式安装 Helm 配置 bash 命令补全[rootmaster ~]# wget https://get.helm.sh/helm-v4.1.3-linux-amd64.tar.gz #下载 Helm 二进制压缩包(Helm 是 K8s 包管理器) [rootmaster …

2026/10/31 18:54:40

浏览器扩展端侧AI推理实战:Manifest V3与WebGPU架构指南

1. 端侧推理为何突然成了浏览器扩展的刚需 浏览器扩展这个行当,过去十年基本就是干三件事:改页面样式、拦网络请求、往页面里塞按钮。逻辑简单,打包出来几百KB,扔到应用商店就完事。但从去年开始,我明显感觉到风向变了…

2026/10/31 18:54:40

PC输入法怎么选?微信、Rime、豆包三套方案横向对比与配置指南

输入法这东西,属于典型的“用惯了就不觉得存在,一旦换掉浑身难受”的工具。我前后在五六台机器上折腾过各种输入方案,从最早的系统自带,到后来追各种花里胡哨的皮肤词库,再到回归极简、自己动手配置,踩过的…

2026/10/31 18:54:40

Python+Hadoop+Spark构建零售大数据可视化系统实战

1. 项目概述:当零售业遇上大数据可视化去年双十一期间,某区域连锁超市通过我们团队开发的这套系统,成功预测到当地消费者对某款小众健康食品的爆发式需求,提前两周完成备货并针对性投放广告,最终该品类销售额同比增长3…

2026/10/31 18:54:40

智能系统开发:从构建到持续进化的思维转变

1. 从"造系统"到"养系统"的思维转变在传统IT时代,我们习惯于"造系统"的思维模式:需求分析→系统设计→开发实施→上线交付。这种线性思维在确定性环境中确实高效,但在智能时代却面临三大困境:需求变…

2026/10/31 18:54:40

LCEL链式编程:构建可维护、可观测的LLM应用流水线

1. 什么是LCEL链式编程:一条看得见、摸得着的AI流水线你有没有试过写一段大模型调用代码,结果光是初始化模型、拼接prompt、调用API、解析JSON、处理异常这五步,就写了四十多行?我去年在做电商客服意图识别模块时,就是…

2026/10/31 18:49:40

实时网络同步技术:帧同步与状态同步的深度解析

1. 实时网络同步技术概述 在当今的互联网应用中,实时网络同步技术已经成为游戏开发、协同办公、远程控制等领域的核心技术。这项技术要解决的核心问题是:如何让多个终端设备在毫秒级延迟内保持数据状态和视觉表现的一致性。 我曾在多个游戏项目中负责网…

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/30 20:55:09

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介:本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包,专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片,标注质量高,同时提供VOC(XML)、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介:本资源为2017年HDU多校联合训练第一场官方配套资料,面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员,旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件,含15份C标程(覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑