面对这个错误文件构建docker镜像dlib

Posted

技术标签:

【中文标题】面对这个错误文件构建docker镜像dlib【英文标题】:face This error file building docker image dlib 【发布时间】:2020-06-18 00:41:08 【问题描述】:

错误:命令出错,退出状态为 1: 命令:/usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-oho_tlt5/dlib/setup.py'"'"'; 文件='"'"'/tmp/pip-install-oho_tlt5/dlib/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'" ', open)(文件);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-vktrpqpq cwd:/tmp/pip-install-oho_tlt5/dlib/ 完整输出(53 行): 运行 bdist_wheel 运行构建 运行 build_py 未找到包初始化文件“dlib/init.py”(或不是常规文件) 运行 build_ext 回溯(最近一次通话最后): 文件“/tmp/pip-install-oho_tlt5/dlib/setup.py”,第 120 行,在 get_cmake_version out = subprocess.check_output(['cmake', '--version']) 文件“/usr/local/lib/python3.8/subprocess.py”,第 411 行,在 check_output 返回运行(*popenargs,标准输出=管道,超时=超时,检查=真, 文件“/usr/local/lib/python3.8/subprocess.py”,第 489 行,运行中 使用 Popen(*popenargs, **kwargs) 作为进程: init 中的文件“/usr/local/lib/python3.8/subprocess.py”,第 854 行 self._execute_child(args, 可执行文件, preexec_fn, close_fds, _execute_child 中的文件“/usr/local/lib/python3.8/subprocess.py”,第 1702 行 raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] 没有这样的文件或目录:'cmake'

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 文件“/tmp/pip-install-oho_tlt5/dlib/setup.py”,第 223 行,在 设置( 文件“/usr/local/lib/python3.8/site-packages/setuptools/init.py”,行 144,在设置中 返回 distutils.core.setup(**attrs) 文件“/usr/local/lib/python3.8/distutils/core.py”,第 148 行,在设置中 dist.run_commands() 文件“/usr/local/lib/python3.8/distutils/dist.py”,第 966 行,在 run_commands self.run_command(cmd) 文件“/usr/local/lib/python3.8/distutils/dist.py”,第 985 行,在 run_command cmd_obj.run() 文件“/usr/local/lib/python3.8/site-packages/wheel/bdist_wheel.py”,行 223,运行中 self.run_command('build') 文件“/usr/local/lib/python3.8/distutils/cmd.py”,第 313 行,在 run_command self.distribution.run_command(command) 文件“/usr/local/lib/python3.8/distutils/dist.py”,第 985 行,在 run_command cmd_obj.run() 运行中的文件“/usr/local/lib/python3.8/distutils/command/build.py”,第 135 行 self.run_command(cmd_name) 文件“/usr/local/lib/python3.8/distutils/cmd.py”,第 313 行,在 run_command self.distribution.run_command(command) 文件“/usr/local/lib/python3.8/distutils/dist.py”,第 985 行,在 run_command cmd_obj.run() 运行中的文件“/tmp/pip-install-oho_tlt5/dlib/setup.py”,第 129 行 cmake_version = self.get_cmake_version() 文件“/tmp/pip-install-oho_tlt5/dlib/setup.py”,第 122 行,在 get_cmake_version 引发 RuntimeError("\n******************************************** ***********************\n" + 运行时错误: ****************************************************** ***************** 必须安装 CMake 才能构建以下扩展:dlib

***************************************************** ********************

错误:dlib 构建***失败


码头文件

FROM python:3

WORKDIR ./app

复制 ./requirements.txt .

运行 pip install --upgrade pip \ && apt-get install -y --fix-missing\ && pip install --no-cache-dir -r requirements.txt

复制。 ./app

入口点[“python”,“./app.py”]

【问题讨论】:

【参考方案1】:

在您的 Dockerfile 中。

FROM python:3
WORKDIR ./app
COPY ./requirements.txt .
RUN pip install -U pip wheel cmake
RUN pip install -r requirements.txt
COPY . ./app
ENTRYPOINT [ "python", "./app.py" ]

先用pip安装cmakewheel,你从requirement.txt文件安装的包先下载再安装,对于这个原因它无法安装 dlib

【讨论】:

【参考方案2】:

在你的 requirements.txt 中将 CMake 放在首位

【讨论】:

以上是关于面对这个错误文件构建docker镜像dlib的主要内容,如果未能解决你的问题,请参考以下文章

Docker学习笔记之创建私有仓库

docker构建镜像

构建 Spring Boot 应用程序的 Docker 镜像文件

使用Jenkins构建Docker镜像 --SpringCloud

docker: 构建自己的镜像

docker镜像未连接到mongodb