为什么 setuptools 在安装了 Python 和开发工具的环境 Ubuntu docker 图像中不可用?

Why is setuptools not available in environment Ubuntu docker image with Python & dev tools installed?

我正在尝试为机器学习项目构建 Ubuntu 18.04 Docker 图像 运行 Python 3.7。当从 requirements.txt 安装带有 pip 的特定 Python 包时,出现以下错误:

Collecting sklearn==0.0
  Downloading sklearn-0.0.tar.gz (1.1 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'error'
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.
      [end of output]

虽然这里的错误出现在 sklearn 的上下文中,但问题并不特定于某个库;当我删除该库并尝试重建图像时,其他库会出现错误。

这是我的 Dockerfile:

FROM ubuntu:18.04

# install python
RUN apt-get update && \
    apt-get install --no-install-recommends -y \
    python3.7 python3-pip python3.7-dev

# copy requirements
WORKDIR /opt/program
COPY requirements.txt requirements.txt

# install requirements
RUN python3.7 -m pip install --upgrade pip && \
    python3.7 -m pip install -r requirements.txt

# set up program in image
COPY . /opt/program

我尝试过的:

两种情况都出现了同样的错误。

您知道在安装 sklearn 等库时如何确保 setuptools 在我的环境中可用吗?

如评论中所述,在 运行 pip install -r requirements.txt.

之前安装 setuptoolspip

这不同于将 setuptools 放在 requirements.txt 中更高的位置,因为它会强制执行顺序,而需求文件会收集所有包并在之后安装它们,因此您无法控制顺序。