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

Ubuntu EC2上Docker容器运行Web应用时libctransformers.so缺失求助

问题解决方案

1. 排查ctransformers安装完整性

首先在Docker构建阶段添加检查步骤,确认包是否正确安装:

FROM python:3.10
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt --default-timeout=100 future && \
    # 检查ctransformers安装信息及文件
    pip show ctransformers && \
    ls -la /usr/local/lib/python3.10/site-packages/ctransformers/lib/basic/
COPY . .
EXPOSE 8000
CMD ["chainlit", "run", "model.py"]

重新构建镜像时查看输出,如果构建阶段就提示文件缺失,说明ctransformers安装不完整。

2. 指定适配平台的ctransformers版本

ctransformers依赖预编译二进制文件,默认安装可能存在平台适配问题。在requirements.txt中明确指定兼容Linux x86_64的版本:

ctransformers==0.2.27 --extra-index-url https://wheels.mrpt.org/simple/

若预编译包仍无法适配,可尝试源码编译(需先安装编译依赖):

FROM python:3.10
WORKDIR /app
# 安装编译依赖
RUN apt-get update && apt-get install -y gcc g++ make cmake
COPY requirements.txt .
# 强制从源码编译ctransformers
RUN pip install -r requirements.txt --default-timeout=100 future --no-binary :all: ctransformers
COPY . .
EXPOSE 8000
CMD ["chainlit", "run", "model.py"]

3. 修正路径认知偏差

Python官方镜像中,pip安装的包默认存放在/usr/local/lib/python3.10/site-packages/,你看到的dist-packages是系统Python的路径。进入容器执行以下命令,确认ctransformers实际安装路径:

docker exec -it <容器ID> bash -c "pip show ctransformers | grep Location"

如果代码中硬编码了错误路径,需要同步修改代码中的引用逻辑。

4. 清理缓存重新构建

Docker缓存可能导致旧的安装状态残留,执行以下命令强制重新构建:

docker build --no-cache -t <你的镜像名> .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:04:55