在构建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!

广告
将在 10 秒后关闭
bannerAds