django - 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.yml和Dockerfile配置。
如果有人需要完整的代码,你可以在这里找到它,并使用docker-compose -f docker-compose.dev.yml up --build
.
谢谢 :)。
解决方案
mysqlclient 具有必须先安装的本机依赖项pip install
。在 docker 中运行时,尤其是在 alpine 中,您可能希望切换到使用mysql-connector-python
它是一个纯 python 库,它没有任何本机依赖项,例如 mysqlclient。更新您的需求文件并更新您的设置以使用mysql.connector.django
,如果您想使用mysql-connector-python
.
推荐阅读
- python - 无法找到 xpath 包含很多“div”的元素
- qt - 有没有办法在 Qt Designer 中创建两个独立的布局?
- datastage - DataStage 在作业批处理中调用用户定义的服务器例程
- c++ - clang ++ 构建失败,但 gcc 构建成功
- linux-kernel - 为什么?BUG:处理中的错误页面映射 *process* pte:b3e05275201 pmd:238adf067
- python - 导入本地模块时如何解决错误
- java - 在 Java 中展平嵌套的 Hashmap
- javascript - 选择文本和突出显示错误(无法在“范围”上执行“surroundContents”:范围已部分选择非文本节点)
- flutter - Flutter:图像如何传递到原生端?
- c++ - 在复制构造函数中做指针的深度复制向量让两个向量成员都改变了?