无法在Raspberry Pi上从Dockerfile安装dlib

时间:2019-09-01 18:08:04

标签: docker raspberry-pi dlib raspberry-pi4

我正在尝试在Raspberry Pi 4的Dockerfile中安装dlib。

在Docker之外,我可以通过运行

在Pi上安装dlib
pip3 install --upgrade dlib

但是当我尝试在Dockerfile中执行以下操作时:

FROM resin/raspberry-pi-python:3
COPY raspi.list /etc/apt/sources.list.d/raspi.list
COPY sources.list /etc/apt/sources.list
COPY pip.conf /root/.pip/pip.conf 
RUN apt-get -y update
RUN apt-get install -y --fix-missing \
    build-essential \
    cmake \
    libopenblas-dev \
    liblapack-dev \
    libatlas-base-dev \
    libx11-dev \
    libgtk-3-dev \
    gfortran \
    git \
    wget \
    curl \
    graphicsmagick \
    libgraphicsmagick1-dev \
    libatlas-dev \
    libavcodec-dev \
    libavformat-dev \
    libboost-all-dev \
    libgtk2.0-dev \
    libjpeg-dev \
    liblapack-dev \
    libswscale-dev \
    pkg-config \
    python3-dev \
    zip \
    && apt-get clean && rm -rf /tmp/* /var/tmp/*
RUN python3 -m ensurepip --upgrade

RUN pip3 install --upgrade dlib

尝试构建docker映像时出现错误:

  

第9/12步:运行pip3 install --upgrade dlib --->在   bf5fa67b254d查看索引:   http://mirrors.aliyun.com/pypi/simple/收集dlib下载   http://mirrors.aliyun.com/pypi/packages/05/57/e8a8caa3c89a27f80bc78da39c423e2553f482a3705adc619176a3a24b36/dlib-19.17.0.tar.gz   (3.4MB)安装收集的软件包:dlib运行setup.py install   对于dlib:已启动       为dlib运行setup.py install:状态为“错误”       从命令/usr/local/bin/python3.6 -u -c“ import setuptools,完成输出,   tokenize; 文件 ='/ tmp / pip-install-sak074zk / dlib / setup.py'; f = getattr(tokenize,'open',open)(文件) ; code = f.read()。replace('\ r \ n',   '\ n'); f.close(); exec(compile(code, file ,'exec')))“安装   --record /tmp/pip-record-7yn41l3u/install-record.txt-单一版本-外部管理-编译:       运行安装       运行构建       运行build_py       找不到程序包初始化文件“ dlib / init .py”(或非常规文件)       运行build_ext       追溯(最近一次通话):         文件“”,第1行,位于         在第261行的“ /tmp/pip-install-sak074zk/dlib/setup.py”文件中           “主题::软件开发”,         文件“ /usr/local/lib/python3.6/site-packages/setuptools/init.py”,行   129,设置中           返回distutils.core.setup(** attrs)         安装程序中的文件“ /usr/local/lib/python3.6/distutils/core.py”,第148行           dist.run_commands()         在run_commands中的第955行,文件“ /usr/local/lib/python3.6/distutils/dist.py”           self.run_command(cmd)         在run_command中的文件“ /usr/local/lib/python3.6/distutils/dist.py”,第974行           cmd_obj.run()         文件“ /usr/local/lib/python3.6/site-packages/setuptools/command/install.py”,   61行,运行中           返回orig.install.run(自身)         运行中的文件“ /usr/local/lib/python3.6/distutils/command/install.py”,第545行           self.run_command('build')         在run_command中的文件“ /usr/local/lib/python3.6/distutils/cmd.py”,第313行           self.distribution.run_command(命令)         在run_command中的文件“ /usr/local/lib/python3.6/distutils/dist.py”,第974行           cmd_obj.run()         运行中的文件“ /usr/local/lib/python3.6/distutils/command/build.py”,第135行           self.run_command(cmd_name)         在run_command中的文件“ /usr/local/lib/python3.6/distutils/cmd.py”,第313行           self.distribution.run_command(命令)         在run_command中的文件“ /usr/local/lib/python3.6/distutils/dist.py”,第974行           cmd_obj.run()         运行中的文件“ /tmp/pip-install-sak074zk/dlib/setup.py”,第129行           cmake_version = self.get_cmake_version()         get_cmake_version中的文件“ /tmp/pip-install-sak074zk/dlib/setup.py”,第120行           out = subprocess.check_output(['cmake','--version'])         在check_output中的文件“ /usr/local/lib/python3.6/subprocess.py”,行336           ** kwargs).stdout         运行中的文件“ /usr/local/lib/python3.6/subprocess.py”,第418行           输出=标准输出,标准错误=标准错误)       subprocess.CalledProcessError:命令'['cmake','--version']'死于。

     
     

命令“ /usr/local/bin/python3.6 -u -c”导入设置工具,   tokenize; 文件 ='/ tmp / pip-install-sak074zk / dlib / setup.py'; f = getattr(tokenize,'open',open)(文件) ; code = f.read()。replace('\ r \ n',   '\ n'); f.close(); exec(compile(code, file ,'exec')))“安装   --record /tmp/pip-record-7yn41l3u/install-record.txt-“单一版本-外部管理的--compile”在/ tmp / pip-install-sak074zk / dlib /中失败,错误代码为1点版本10.0.1,   但是版本19.2.3可用。您应该考虑通过升级   'pip install --upgrade pip'命令。命令'/ bin / sh -c pip3   install --upgrade dlib'返回了非零代码:1

我想念什么?

1 个答案:

答案 0 :(得分:0)

通过将基本图像更改为 从树莓派/拉伸

# get base image
FROM raspbian/stretch

RUN apt-get -y update
RUN apt-get install -y --fix-missing \
    build-essential \
    cmake \
    libopenblas-dev \
    libblas-dev \
    liblapack-dev \
    libatlas-base-dev \
    libx11-dev \
    libgtk-3-dev \
    gfortran \
    git \
    wget \
    curl \
    graphicsmagick \
    libgraphicsmagick1-dev \
    libavcodec-dev \
    libavformat-dev \
    libboost-all-dev \
    libgtk2.0-dev \
    libjpeg-dev \
    liblapack-dev \
    libswscale-dev \
    pkg-config \
    python3-dev \
    python3-numpy \
    python3-pip \
    software-properties-common \
    zip \
    && apt-get clean && rm -rf /tmp/* /var/tmp/*

RUN pip3 install setuptools --upgrade
RUN pip3 install cython --upgrade


#Install dlib
RUN cd ~ && \
    mkdir -p dlib && \
    git clone -b 'v19.9' --single-branch https://github.com/davisking/dlib.git dlib/ && \
    cd  dlib/ && \
    python3 setup.py install --yes