Невозможно установить 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