Azure App Service部署导入GluonCV提示libgomp.so.1缺失如何解决
问题根源
报错是因为Azure Linux应用服务的运行环境缺少libgomp1系统依赖包,这个包是GCC的OpenMP运行库,你当前用的mxnet动态编译版本依赖该系统库,不属于Python依赖范畴,所以只操作pip安装包无法解决。
现有技术栈修复方案(保留mxnet+gluoncv)
- 方案1:修改启动命令安装系统依赖
进入Azure门户对应应用的「配置」-「常规设置」,在启动命令输入框填入以下内容(注意替换最后的gunicorn启动参数为你实际的应用入口):
保存后重启应用即可生效。apt-get update && apt-get install -y libgomp1 && gunicorn --bind=0.0.0.0 --timeout 600 app:app - 方案2:替换无系统依赖的mxnet版本
修改requirements.txt,将mxnet==1.7.0.post2替换为mxnet-mkl==1.7.0.post2,该版本将依赖的系统库静态编译到包内,无需额外安装系统依赖,重新部署即可。 - 方案3:自定义容器部署(如果当前用的是容器部署模式)
在Dockerfile中添加系统依赖安装步骤即可:RUN apt-get update && apt-get install -y --no-install-recommends libgomp1 \ && rm -rf /var/lib/apt/lists/*
切换PyTorch是否能解决问题
可以。
PyTorch生态的预编译包默认会将依赖的系统库静态打包,不会出现动态库缺失问题,有两种切换方式:
- 最小改动:将requirements.txt中的
gluoncv、mxnet替换为gluoncv-torch,gluoncv的PyTorch后端版本API和原有mxnet版本高度兼容,仅需修改少量初始化代码即可运行。 - 全量迁移:直接使用torch+torchvision实现对应计算机视觉模型,彻底去掉mxnet依赖,稳定性更高。
内容的提问来源于stack exchange,提问作者Sambam
相关产品推荐
相关产品推荐

