我已经在浏览器中为小型 Web 应用程序实现了 pyodide。一些python包没有纯python轮所以我在本地构建然后上传到CDN。这个 python 轮可以使用 pyodide 中的 micropip 安装。
所以我的问题是,有没有办法在浏览器中为 pyodide 构建轮子。实施这个会有什么困难?我很想知道。谢谢
如果一个纯 Python 包的轮子由一些带有元数据的 Python 文件组成,打包为 ZIP 文件,您当然可以在 Pyodide 中创建这样的存档。
但在实践中,轮子最常使用setuptools或wheel包创建,这对 pyodide 有以下挑战:
subprocess
WebAssembly VM 不支持的模块,这意味着需要对其进行修补以避免进行子进程调用setup.py
(and build requirements in pyproject.toml
) 意味着可以使用 pip 下载和安装依赖项,这会带来自己的挑战,即,
由于这些原因,在 pyodide 的上下文中,micropip 被编写为 pip 的非常基本的替代方案。
为纯 Python 包创建轮子也是一个好主意,即使是经典架构上的 Python,因为它们不需要执行任意代码来安装。这意味着车轮更安全、更可靠且安装速度更快。