第一次运行Docker Compose时出现错误

0 投票
1 回答
33 浏览
提问于 2025-04-13 17:53

我正在第一次尝试设置Docker,但在运行命令:docker compose up --build时遇到了以下错误。

8.892 ERROR: Could not find a version that satisfies the requirement pywin32==306 (from versions: none)
8.893 ERROR: No matching distribution found for pywin32==306
------
failed to solve: process "/bin/sh -c pip install -r requirements.txt" did not complete successfully: exit code: 1

dockerfile:

FROM python:3

ENV PYTHONUNBUFFERED=1

WORKDIR /code

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["python","manage.py","runserver"]`

requirements.txt:

asgiref==3.7.2
backports.zoneinfo==0.2.1
certifi==2024.2.2
charset-normalizer==3.3.2
Django==4.2.11
docker==7.0.0
idna==3.6
packaging==24.0
pywin32==306
requests==2.31.0
sqlparse==0.4.4
typing_extensions==4.10.0
tzdata==2024.1
urllib3==2.2.1

更多信息:

在运行pip show pywin32后,得到了以下版本信息:

名称:pywin32
版本:306

1 个回答

0

解释

python:3 是一个基于 debian:12 的 Docker 镜像,简单来说就是一个运行在 Linux 系统上的基础环境。

pywin32 这个包只提供 Windows 版本,这也很合理,因为它的描述是“用于 Win32 扩展的 Python”。

所以你会看到错误信息 ERROR: No matching distribution found,意思是找不到合适的版本。因为它们的系统架构不兼容。

解决方案

那么该怎么做呢?你可以考虑以下几种选择。

  1. 你真的需要这个包吗?如果不需要,就把它删掉。

  2. 你是在做一个跨平台的项目,并且 pywin32 只是偶尔用到?那可以使用

pywin32==306; platform_system=="Windows"

另外,你可以查看 是否可以根据平台有条件地使用 requirements.txt 文件,了解其他选项。

  1. 如果你是在做一个需要在 Windows 上运行的项目,那就不要使用 Linux 容器。

撰写回答