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

Docker环境下OpenPose Python3安装失败及编译报错问题

解决Docker安装OpenPose时的BUILD_python/USE_OPENCV未启用及Caffe编译错误问题

我帮你梳理下遇到的两个核心问题,然后直接给出修改后的Dockerfile,再逐个解释为什么要改:

问题根源分析

  1. BUILD_python和USE_OPENCV未启用:你的CMake参数写错了——OpenPose的CMake变量是大写开头的,你用的-DBUILD_python=ON和-USE_OPENCV=ON都是错误格式,导致CMake识别不到,默认设为OFF。
  2. Caffe编译的缩进错误:你克隆的是BVLC官方的Caffe仓库,这个版本里MKL相关代码有缩进问题,而且OpenPose本身有适配过的Caffe fork,用官方版本会出现编译警告转错误的问题。
  3. 另外还有几个小问题:比如make和make -j 64的顺序搞反了,缺少Python开发依赖导致即使开启BUILD_PYTHON也可能编译失败,以及一些冗余的安装步骤。

修改后的Dockerfile

FROM ubuntu:20.04  # 指定具体版本,避免后续Ubuntu更新导致兼容性问题
LABEL maintainer="Ankit Sharma <ankit.kumar@mirrorsize.com>"

# 设置时区,避免tzdata交互
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 一次性安装所有依赖,减少镜像层数
RUN apt-get update && apt-get upgrade -y && \
    apt-get install -y --no-install-recommends \
    tzdata \
    python3 python3-pip python3-dev \
    libopencv-dev \
    libprotobuf-dev protobuf-compiler \
    libhdf5-dev \
    libgoogle-glog-dev \
    git \
    libboost-all-dev \
    wget \
    cmake \
    build-essential && \
    rm -rf /var/lib/apt/lists/*  # 清理apt缓存,减小镜像体积

WORKDIR /src
RUN git clone --depth 1 https://github.com/CMU-Perceptual-Computing-Lab/openpose.git  # 浅克隆,加快速度

WORKDIR /src/openpose/3rdparty
# 删除自带的caffe和pybind11,替换为OpenPose适配的版本
RUN rm -rf caffe pybind11 && \
    git clone --depth 1 https://github.com/CMU-Perceptual-Computing-Lab/caffe.git && \
    git clone --depth 1 https://github.com/pybind/pybind11.git

WORKDIR /src/openpose/build
# 修正CMake参数,启用Python和OpenCV,指定CPU模式
RUN cmake .. \
    -DBUILD_CAFFE=ON \
    -DBUILD_PYTHON=ON \
    -DGPU_MODE=CPU_ONLY \
    -DUSE_OPENCV=ON

# 并行编译,用当前容器的CPU核心数,避免64核导致资源耗尽
RUN make -j$(nproc) && make install

关键修改点说明

  • 指定Ubuntu版本:用ubuntu:20.04而不是默认的latest,避免后续Ubuntu大版本更新带来的依赖兼容性问题。
  • 修正CMake参数:把BUILD_python改成BUILD_PYTHON,-USE_OPENCV=ON改成-DUSE_OPENCV=ON——CMake变量是大小写敏感的,必须严格匹配OpenPose的定义。
  • 替换Caffe仓库:改用CMU官方适配的Caffe fork,这个版本已经修复了MKL相关的缩进问题,不会出现编译错误。
  • 添加python3-dev:编译Python绑定需要Python的头文件,这个依赖之前缺失了。
  • 优化镜像构建:把所有apt安装命令合并成一个RUN,减少镜像层数;添加--no-install-recommends和清理apt缓存,减小镜像体积;用-j$(nproc)自动适配CPU核心数,避免硬编码64导致的资源过载。

这样修改后,你应该能看到CMake输出里BUILD_PYTHON: ON和USE_OPENCV: ON,而且Caffe编译也不会再出现缩进相关的错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:53:37