首页 > 解决方案 > 如何在 Google Cloud Functions 上运行 cython 的共享库?

问题描述

正如标题所说,我想知道 Google Cloud Functions(我目前有一些纯 python 代码)是否支持 cython'd 模块?

我想,更具体地说,我在问我将如何使用所述模块?这是一个私人项目,我通过 setup.py 使用 cython,cythonize(files)它创建了一堆共享对象模块(example.cpython-38-darwin.so, example1.cpython-38-darwin.so, example2.cpython-38-darwin.so)。

这些都适用于 Mac,因此不适用于 Firebase。

有什么方法可以让 Cloud Functions 运行 setup.py 并编译一些文件?或者,更好的是,有没有办法为适当的操作系统预编译这些文件并只部署共享库?

我知道我通过pipCloud Functions 安装的各种库在后台使用 Cython,但我真的不知道创建轮子或其他 pip 依赖项的过程......

标签: pythongoogle-cloud-platformgoogle-cloud-functionscython

解决方案


您需要cython通过添加如下文件来指定私有项目的构建时依赖项pyproject.toml

[build-system]
requires = ["cython"]

pip然后,在 Cloud Functions 运行时中使用现代版本安装包时,将在脚本运行cython之前将其安装到构建环境中。setup.py


推荐阅读