You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Python项目部署至Azure App Service遇libgomp.so.1缺失错误求助

解决Azure App Service部署Python项目时的libgomp.so.1缺失问题

问题原因

出现的ImportError: libgomp.so.1: cannot open shared object file: No such file or directory错误,是因为Azure App Service的基础镜像未安装OpenMP运行时库——对应的Debian/Ubuntu系统包为libgomp1,之前安装的libgl1和libglib2.0-0与该依赖无关,因此无法解决问题。

可行解决方案

方案1:修改代码中的安装脚本

将app.py开头添加的脚本替换为安装libgomp1的命令,确保这段代码在所有import语句之前执行:

from subprocess import STDOUT, check_call
import os

# 更新源并安装libgomp1
check_call(['apt-get', 'update'], stdout=open(os.devnull,'wb'), stderr=STDOUT)
check_call(['apt-get', 'install', '-y', 'libgomp1'], stdout=open(os.devnull,'wb'), stderr=STDOUT)

方案2:配置App Service启动命令(推荐)

不建议在代码中嵌入系统命令,更稳妥的方式是通过Azure门户设置启动命令,提前安装依赖:

  1. 进入你的App Service资源,打开「配置」>「常规设置」
  2. 在「启动命令」输入框中填入:
apt-get update && apt-get install -y libgomp1 && gunicorn --bind=0.0.0.0 --timeout 600 app:app

如果你的应用使用其他启动方式(比如flask run),替换掉末尾的启动命令即可

方案3:使用自定义Docker镜像(适合多依赖场景)

如果项目存在多个系统级依赖,推荐构建自定义Docker镜像,在Dockerfile中预先安装所需库:

FROM python:3.9-slim

# 安装libgomp1及其他必要依赖
RUN apt-get update && apt-get install -y --no-install-recommends libgomp1 \
    && rm -rf /var/lib/apt/lists/*

# 复制项目文件并安装Python依赖
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .

# 启动应用
CMD ["gunicorn", "--bind=0.0.0.0", "--timeout", "600", "app:app"]

之后将镜像推送到Azure Container Registry,再配置App Service使用该镜像部署。

验证步骤

重新部署项目后,访问你的App Service地址,确认hnswlib能正常导入,错误不再出现。

内容的提问来源于stack exchange,提问作者Harly Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:54:52