Google Cloud Functions未检测到G++,如何为pymc3安装GCC编译器?
针对Google Cloud Function Python3.7环境安装GCC的解决方案
可以在Google Cloud Function环境中安装GCC,以下是可落地的操作方案:
方案1:通过平台内置的apt依赖机制安装
适用于第一代Cloud Function,无需额外调整部署逻辑,操作步骤如下:
- 在云函数项目的根目录下(和
main.py、requirements.txt同级),新建名为apt-packages的纯文本文件 - 在
apt-packages文件中写入需要安装的系统包,针对pymc3的使用需求,推荐写入以下内容:
gcc g++ gfortran
- 正常执行云函数部署流程即可,平台在构建阶段会自动通过apt安装上述依赖包,部署完成后GCC即可被正常检测到。
方案2:预编译依赖后部署
如果使用的是第二代Cloud Function,或者方案1无法满足需求,可以用本地预编译的方式规避运行时编译需求:
- 本地启动一个和Cloud Function Python3.7运行时架构一致的Linux环境(比如x86架构的Debian 10容器)
- 在该环境中安装Python3.7,执行
pip install -r requirements.txt完成所有依赖的编译安装 - 将本地安装好的
site-packages目录内容和你的业务代码一起打包,上传部署到Cloud Function - 该方案所有依赖已经完成编译,运行时不需要调用GCC,也能解决告警问题。
注意事项
- 不要在云函数运行时代码中执行
apt install类命令,运行时环境没有root权限,无法安装系统依赖 - Python3.7已经停止官方维护,如无特殊兼容需求,建议升级到更高版本的Python运行时,减少潜在的安全和兼容问题
内容的提问来源于stack exchange,提问作者Varun Sharma
相关产品推荐
相关产品推荐

