首页 > 解决方案 > Docker 上的 Django 不安装 mysqlclient

问题描述

我想将 MySQL 与 Django 集成,MySQL 在 Docker 上运行,我将这样的配置用于使用 Django 连接到 db docker:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'restaurant',
        'HOST': 'db',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': 'root',
        'default-character-set': 'utf8',
        'OPTIONS': {
            'init_command': 'SET default_storage_engine=INNODB',
        }
    }
}

但是当 Django 尝试连接到 mysql 数据库时,它会抛出这个错误:

在此处输入图像描述

我尝试使用 pip 安装 mysqlclient,但出现此错误:

在此处输入图像描述

这些是docker-compose.dev.ymlDockerfile配置。

如果有人需要完整的代码,你可以在这里找到它,并使用docker-compose -f docker-compose.dev.yml up --build.

谢谢 :)。

标签: djangodockerdocker-compose

解决方案


mysqlclient 具有必须先安装的本机依赖项pip install。在 docker 中运行时,尤其是在 alpine 中,您可能希望切换到使用mysql-connector-python它是一个纯 python 库,它没有任何本机依赖项,​​例如 mysqlclient。更新您的需求文件并更新您的设置以使用mysql.connector.django,如果您想使用mysql-connector-python.


推荐阅读