Pyodide 是一个在 WebAssembly 中运行 Python 的工具库,使用 Micropip 通过 PyPI 来安装包。由于 WebAssembly 在浏览器内运行需要跨域和 PEP 691,但是清华的 tuna 又不支持 CORS 跨域。
PyPI 在中国大陆是无法正常访问的,但是有许多的 Mirror。清华、阿里云、腾讯云、华为云等不少网站都提供了镜像。这些镜像除了清华的 tuna,其他都不支持 JSON-based Simple API for Python (PEP 691)。
由于 WebAssembly 在浏览器内运行需要跨域和 PEP 691,但是清华的 tuna 又不支持 CORS 跨域。
所以在中国大陆可能没有 Micropip 可用的 PyPI 镜像。
基于这个背景,使用 Cloudflare 搭建了一个支持 PEP691 和 CORS 的 Mirror。
支持 Workers 或者 Snippets 都可以搭建,但各有优缺点:
Workers
优点:免费计划可用。
缺点:会产生很多 Worker 请求,可能超出免费计划后不可用或需要付费。
Snippets
优点:不产生 Worker 请求,支持大量使用。 缺点:Snippets 目前只有 Pro 以上计划使用,Free 不可用。
代码
对应代码已经开源,地址: