【问题标题】:Django-mysqlclient version error in production app uploaded on google app engine?在谷歌应用引擎上上传的生产应用程序中的 Django-mysqlclient 版本错误?
【发布时间】:2020-06-07 12:45:05
【问题描述】:

我遇到过这个关于mysql版本的错误-
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. (从 gcloud 中的错误日志中复制的错误)我在本地也遇到了同样的错误,所以我应用了这个解决方案,我在我的 PC 上本地更改了 base.py 和 operations.py 文件并且它有效 - Django - installing mysqlclient error: mysqlclient 1.3.13 or newer is required; you have 0.9.3 但现在我在谷歌云平台上部署 webapp 后面临同样的问题。 关于如何编辑 gcloud 上其他解决方案中指定的同一组文件的任何建议?还是有其他解决方案?

【问题讨论】:

  • 您使用的是哪个版本的 Django?您使用的是 App Engine 标准版还是灵活版?
  • Django 2.2.1 和 App Engine 标准 @Nibrass H

标签: mysql django google-app-engine google-cloud-platform gcloud


【解决方案1】:

Django 不支持 PyMySQL。

要将 PyMySQL 与 Django 2.2 一起使用,它必须将 version_info 从 1.3.12 更新到 1.3.13,但正如 Github ticket 中所述,PyMySQL 不能与 Django 2.2 一起使用,因为他们将代码更改为使用 query.decode 而不是 force_text 方法。

他们说它将在 Django 3.0 版中修复,并且在设置 pymysql.version_info 后似乎在最新版本中可以正常工作。

在您的 settings.py 中,为 Django 3.0 添加以下行:

import pymysql
pymysql.version_info = (1, 4, 6, 'final', 0)  # change mysqlclient version
pymysql.pymysql.install_as_MySQLdb()

【讨论】:

  • 那么我应该更新到 django 3.0 吗?由于我的整个项目都在 django 2.2 中,它不会引起歧义
  • 是的,我认为你应该更新到 Django 3.0,因为 Django 2.2 不能与 PyMySQL 一起使用,如果你想使用 PyMySQL,你必须使用 3.0 版或者你可以使用我认为 2.1 版
  • 虽然我不得不更改代码-import pymysql pymysql.version_info = (1, 4, 6, 'final', 0) # change mysqlclient version pymysql.install_as_MySQLdb() 还是谢谢
猜你喜欢
  • 2013-05-18
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多