面对这个错误文件构建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安装cmake和wheel,你从requirement.txt文件安装的包先下载再安装,对于这个原因它无法安装 dlib。
【讨论】:
【参考方案2】:在你的 requirements.txt 中将 CMake 放在首位
【讨论】:
以上是关于面对这个错误文件构建docker镜像dlib的主要内容,如果未能解决你的问题,请参考以下文章
构建 Spring Boot 应用程序的 Docker 镜像文件