python - Docker找不到满足mysqlclient == 2.0.3要求的版本
问题描述
命令出错,退出状态为 1:python setup.py egg_info 检查日志以获取完整的命令输出。
#10 3.069 ERROR: Could not find a version that satisfies the requirement mysqlclient==2.0.3
尝试运行 docker build --tag python-docker 时。
码头工人文件:
# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0"]
要求.txt:
click==7.1.2
Flask==1.1.2
itsdangerous==1.1.0
Jinja2==2.11.3
MarkupSafe==1.1.1
mysql==0.0.2
mysql-connector==2.2.9
mysqlclient==2.0.3
Werkzeug==1.0.1
解决方案
根据mysqlclient 的文档,您需要default-libmysqlclient-dev
在系统上安装编译器,因此如果您在运行 pip install 之前安装它,它应该可以工作(我测试过它,但当然没有您的应用程序代码)
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
# Install required library libmysqlclient (and build-essential for building mysqlclient python extension)
RUN set -eux && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -y default-libmysqlclient-dev build-essential && \
rm -rf /var/lib/apt/lists/*
RUN pip install -r requirements.txt
COPY . .
CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0"]
您还可以将 pip install 添加到第一次运行(使用&& \
),以便整个设置保留在一个图像层中。
推荐阅读
- c# - 如何仅在特定用户控件 ascx 中删除“X-Content-Type-Options: nosniff”标头
- javascript - CKEditor 5 工具栏固定位置
- json - 无法访问 JSON 数据并仅打印 Begin 和 End React Native
- python - 为什么我收到空约束错误?
- angular - 如何在不刷新页面的情况下更新组件内部的值?
- azure - 我可以更改现有 NIC 的 V-Net 吗?
- r - 为多个时间序列图从数据帧中分离数据帧
- php - stripos vs glob 用于取消链接
- python - 如何锁定pdf选择文本不可用
- javascript - PowerShell 和 IE 自动化