为什么 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
我尝试过的:
- 安装
python-devtools
,而不是同时安装 python3.7-dev
,然后使用 pip
; 安装要求
- 在安装受影响的库之前在
requirements.txt
中安装 setuptools
。
两种情况都出现了同样的错误。
您知道在安装 sklearn
等库时如何确保 setuptools
在我的环境中可用吗?
如评论中所述,在 运行 pip install -r requirements.txt
.
之前安装 setuptools
和 pip
这不同于将 setuptools
放在 requirements.txt
中更高的位置,因为它会强制执行顺序,而需求文件会收集所有包并在之后安装它们,因此您无法控制顺序。
我正在尝试为机器学习项目构建 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
我尝试过的:
- 安装
python-devtools
,而不是同时安装python3.7-dev
,然后使用pip
; 安装要求
- 在安装受影响的库之前在
requirements.txt
中安装setuptools
。
两种情况都出现了同样的错误。
您知道在安装 sklearn
等库时如何确保 setuptools
在我的环境中可用吗?
如评论中所述,在 运行 pip install -r requirements.txt
.
setuptools
和 pip
这不同于将 setuptools
放在 requirements.txt
中更高的位置,因为它会强制执行顺序,而需求文件会收集所有包并在之后安装它们,因此您无法控制顺序。