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