Streamlit社区云部署时pip安装dlib编译失败求助
解决Streamlit社区云部署时dlib编译失败的问题
核心原因
Streamlit社区云免费实例的内存配额有限,编译dlib这类依赖C++的库时,内存占用过高导致编译进程(cc1plus)被系统终止。
解决方案
方案1:使用预编译的dlib包
跳过源码编译环节,直接安装针对Linux平台的预编译wheel包,修改requirements.txt:
dlib==19.24.2
注:19.24.2版本有官方提供的Linux预编译包,更高版本可查找第三方预编译源。
方案2:调整编译参数降低内存消耗
若必须源码编译,先完善依赖并设置低内存编译参数:
- 更新
packages.txt,添加编译所需系统依赖:
build-essential cmake libopenblas-dev liblapack-dev libx11-dev libgtk-3-dev
- 修改
requirements.txt,添加编译参数后再安装dlib:
CMAKE_ARGS="-DUSE_AVX_INSTRUCTIONS=OFF -DUSE_SSE4_INSTRUCTIONS=OFF" pip install dlib==19.24.2
关闭AVX和SSE4指令集可大幅减少编译时的内存占用。
方案3:替换为轻量替代库
如果业务功能不需要dlib的全部特性,可改用更轻量的替代方案:
- 人脸检测:使用
opencv-python的Haar分类器或DNN模块 - 人脸特征提取:使用
face-recognition(底层依赖dlib,但部分场景可直接用预编译版本)搭配face-recognition-models
验证步骤
- 修改
requirements.txt和packages.txt后,提交更新到GitHub仓库 - 触发Streamlit社区云重新部署,查看日志确认编译是否成功
内容的提问来源于stack exchange,提问作者Zain Ul Abidin
相关产品推荐
相关产品推荐

