无法在 Raspberry Pi 上从 Dockerfile 安装 dlib
Posted
技术标签:
【中文标题】无法在 Raspberry Pi 上从 Dockerfile 安装 dlib【英文标题】:Unable to install dlib from Dockerfile on Raspberry Pi 【发布时间】:2020-01-04 23:38:40 【问题描述】:我正在尝试在 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 : RUN 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;file='/tmp/pip-install-sak074zk/dlib/setup.py';f=getattr(tokenize, 'open', open)(file) ;code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" 安装 --record /tmp/pip-record-7yn41l3u/install-record.txt --single-version-externally-managed --compile: 运行安装 运行构建 运行 build_py 找不到包初始化文件“dlib/init.py”(或不是常规文件) 运行 build_ext 回溯(最近一次通话最后): 文件“”,第 1 行,在 文件“/tmp/pip-install-sak074zk/dlib/setup.py”,第 261 行,在 '主题 :: 软件开发', 文件“/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() 文件“/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 行,运行中 返回 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(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(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 行 输出=标准输出,标准错误=标准错误) subprocess.CalledProcessError: Command '['cmake', '--version']' 死于 .
命令“/usr/local/bin/python3.6 -u -c”导入设置工具, tokenize;file='/tmp/pip-install-sak074zk/dlib/setup.py';f=getattr(tokenize, 'open', open)(file) ;code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" 安装 --record /tmp/pip-record-7yn41l3u/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-sak074zk/dlib/ 您正在使用点子版本 10.0.1, 但是版本 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
【讨论】:
以上是关于无法在 Raspberry Pi 上从 Dockerfile 安装 dlib的主要内容,如果未能解决你的问题,请参考以下文章
在我的 Raspberry Pi 上从 Gitlab.com 克隆 Repo 时权限被拒绝(公钥)
无法在 Manjaro 的 Raspberry PI 中 ssh
无法使用 Raspberry PI 从 RDM6300 读取 RFID 数据
MediaPlayer无法在Android Things Raspberry Pi 3上运行