【问题标题】:Is it possible to build python wheel in browser using wasm for pyodide?是否可以在浏览器中使用 pyodide 的 wasm 构建 python 轮?
【发布时间】:2021-03-19 00:06:05
【问题描述】:

我已经在浏览器中为小型 Web 应用程序实现了 pyodide。一些python包没有纯python轮所以我在本地构建然后上传到CDN。这个 python 轮子可以使用 pyodide 中的 micropip 安装。

所以我的问题是,有没有办法在浏览器中为 pyodide 构建轮子。实施这个会有什么困难? 我很想知道。 谢谢

【问题讨论】:

    标签: python pyodide


    【解决方案1】:

    如果一个纯 Python 包的轮子由一些带有元数据的 Python 文件组成,打包为 ZIP 文件,你当然可以在 Pyodide 中创建这样的存档。

    但实际上,轮子最常使用setuptoolswheel 包创建,这对pyodide 有以下挑战:

    1. setuptools 至少使用了 WebAssembly VM 不支持的 subprocess 模块,这意味着需要对其进行修补以避免进行子进程调用
    2. setup.py 中的安装要求(以及pyproject.toml 中的构建要求)意味着可以使用 pip 下载和安装依赖项,这会带来自身的挑战,即,
      • 在 pip / setuptools 中子进程的使用
      • 使用标准 python 模块获取包也不起作用(WASM 中没有套接字),除非使用 Web API pyodide#140 重写其中一些

    出于这些原因,micropip 在 pyodide 的上下文中被编写为 pip 的非常基本的替代方案。

    为纯 Python 包创建轮子也是一个好主意,即使是经典架构上的 Python,因为它们不需要执行任意代码来安装。这意味着车轮更安全、更可靠且安装速度更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2010-10-06
      • 1970-01-01
      • 2020-02-23
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多