Невозможно установить dlib из Dockerfile на Raspberry Pi

Я пытаюсь установить dlib в Dockerfile на Raspberry Pi 4.

Вне Docker я могу установить dlib на Pi, запустив

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

Я получаю ошибки, когда пытаюсь создать образ докера:

Шаг 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,4 МБ) Установка собранных пакетов: dlib Запуск setup.py install для dlib: запущен Запуск setup.py install со статусом'lib 'Полный вывод команды /usr/local/bin/python3.6 -u -c "import setuptools, tokenize;file='/tmp/pip-install-sak074zk/dlib/ setup.py ';f= getattr (tokenize, 'open', open)(файл);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code,файл, 'exec'))" install --record /tmp/pip-record-7yn41l3u/install-record.txt --single-version-ex external-managed --compile: running install running build running build_py package init file 'dlib/init.py'не найден (или не является обычным файлом), выполняется build_ext Traceback (последний вызов последним): файл "", строка 1, в файле "/tmp/pip-install-sak074zk/dlib/setup.py", строка 261, в "Тема:: Разработка программного обеспечения", файл "/usr/local/lib/python3.6/site-packages/setuptools/init.py ", строка 129, в настройке return distutils.core.setup(**attrs) Файл"/usr/local/lib/python3.6/distutils/core.py", строка 148, в настройке dist.run_commands() Файл "/usr/local/lib/python3.6/distutils/dist.py", строка 955, в run_commands self.run_command(cmd) Файл "/usr/local/lib/python3.6/distutils/dist.py", строка 974, в файле run_command cmd_obj.run() "/usr/local/lib/python3.6/site-packages/setuptools/command/install.py", строка 61, при выполнении return orig.install.run(self) Файл "/usr/local/lib/python3.6/distutils/command/install.py", строка 545, при запуске self.run_command('build') Файл "/usr/local/lib/python3.6/distutils/cmd.py", строка 313, в run_command self.distribution.run_command(команда) Файл "/usr/local/lib/python3.6/distutils/dist.py", строка 974, в файле run_command cmd_obj.run() "/usr/local/lib/python3.6/distutils/command/build.py", строка 135, при запуске self.run_command(cmd_name) Файл" /usr/local/lib/python3.6/distutils/cmd.py ", строка 313, в run_command self.distribution.run_command(команда) Файл "/usr/local/lib/python3.6/distutils/dist.py", строка 974, в run_command cmd_obj.run() Файл "/tmp/pip-install-sak074zk/dlib/setup.py", строка 129, при запуске cmake_version = self.get_cmake_version() Файл "/tmp/pip-install-sak074zk/dlib/setup.py", строка 120, в get_cmake_version out = subprocess.check_output(['cmake', '--version']) Файл "/usr/local/lib/python3.6/subprocess.py", строка 336, в check_output **kwargs).stdout Файл "/usr/local/lib/python3.6/subprocess.py", строка 418, в run output=stdout, stderr=stderr) subprocess.CalledProcessError: Команда '['cmake', '--version']' умерла с.


Команда "/usr/local/bin/python3.6 -u -c" импортирует инструменты настройки, токенизирует;file= '/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')) "install --record /tmp/pip-record-7yn41l3u/install-record.txt --single-version-external-managed --compile "завершился ошибкой с кодом 1 в /tmp/pip-install-sak074zk/dlib/ Вы используете версию 10.0.1 pip, однако доступна версия 19.2.3. Вам следует рассмотреть возможность обновления с помощью команды pip install --upgrade pip. Команда '/ bin / sh -c pip3 install --upgrade dlib' вернула ненулевой код: 1

Что мне не хватает?

1 ответ

Мне удалось заставить его работать, изменив базовый образ на FROM raspbian/stretch

# 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
Другие вопросы по тегам