在构建Docker时出现了”Failed to build backports.zoneinfo”的错误提示
首先
在使用Docker进行环境配置时,由于在执行pip3 install -r requirements.txt时遇到了错误,我将解决方法作为备忘记下来。
环境
Python 3.8.10
pip 23.2.1 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)
错误代码
Failed to build backports.zoneinfo
ERROR: Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects
failed to solve: executor failed running [/bin/sh -c pip3 install -r requirements.txt]: exit code: 1
根据我调查的文章,据说backports.zoneinfo模块不支持Python3.9及以上版本,因此会出现错误。但是,我的环境是Python3.8.10,所以这种方法无法解决问题…。
解决方案 (jiě jué àn)
由于未安装名为build-essential的元包,因此导致了错误。因此,通过安装build-essential来解决了问题。
apt-get install build-essential
Dockerfile的意思是?
在我的情况下,我通过以下方式解决了问题。
FROM ubuntu:20.04
(省略)
# apt-get
RUN apt-get update && \
apt-get install -y --no-install-recommends \
# ↓を追加
build-essential \
curl \
git \
python3 \
python3-pip \
wget \
(省略)
build-essential是什么?
build-essential是Debian基于Ubuntu等系统中的一个元包,它收集了构建软件所需的包。此包含以下主要包:
-
- GNU デバッガー
-
- GNU コンパイラ
- make(プロジェクトのビルド自動化ツール)
简单来说,build-essential提供了从源代码编译程序和库所需的基本工具,并包含了构建Debian软件包所必需的软件包。在本次情况下,由于缺少构建Debian软件包所必需的软件包导致了错误的发生。
结束
在进行基于Debian(Ubuntu)的环境配置时,不要忘记安装build-essential!