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

Des*_*eux 7 python setuptools requirements.txt docker

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

\n
Collecting sklearn==0.0\n  Downloading sklearn-0.0.tar.gz (1.1 kB)\n  Preparing metadata (setup.py): started\n  Preparing metadata (setup.py): finished with status 'error'\n  error: subprocess-exited-with-error\n  \n  \xc3\x97 python setup.py egg_info did not run successfully.\n  \xe2\x94\x82 exit code: 1\n  \xe2\x95\xb0\xe2\x94\x80> [1 lines of output]\n      ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.\n      [end of output]\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

这是我的Dockerfile

\n
FROM ubuntu:18.04\n\n# install python\nRUN apt-get update && \\\n    apt-get install --no-install-recommends -y \\\n    python3.7 python3-pip python3.7-dev\n\n# copy requirements\nWORKDIR /opt/program\nCOPY requirements.txt requirements.txt\n\n# install requirements\nRUN python3.7 -m pip install --upgrade pip && \\\n    python3.7 -m pip install -r requirements.txt\n\n# set up program in image\nCOPY . /opt/program\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试过的:

\n
    \n
  • 在使用 ;安装需求之前,安装python-devtools,而不是安装或并排安装;python3.7-devpip
  • \n
  • setuptoolsrequirements.txt安装受影响的库之前安装。
  • \n
\n

在这两种情况下都出现了相同的错误。

\n

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

\n

Ssa*_*yan 12

正如评论中提到的,在运行之前setuptools安装。pippip install -r requirements.txt

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

  • pip install -U setuptools 对我有用 (24认同)
  • 如果我这样做,我仍然会遇到同样的问题: # pip3.10 install setuptools Requirement已经满足:setuptools in /root/.pyenv/versions/3.10.4/envs/ansible/lib/python3.10/site-包(58.1.0) (8认同)
  • pip uninstall setuptools && pip install setuptols 为我完成了这项工作。 (8认同)