【问题标题】:ImproperlyConfigured: Error loading MySQLdb module: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 2, 4, 'beta', 4)?配置不当:加载 MySQLdb 模块时出错:这是 MySQLdb 版本 (1, 2, 5, 'final', 1),但 _mysql 是版本 (1, 2, 4, 'beta', 4)?
【发布时间】:2016-04-03 15:27:32
【问题描述】:

我正在尝试使用 Google App Engine 部署 Django 示例项目。它抛出了问题标题中提到的错误。 本地应用程序运行良好。在 requirements.txt 我将 mysql-python 版本更改为 1.2.4 和 1.2.5 都不起作用。我收到 500 错误。 我在 SO 上检查了同一个问题的许多答案,但似乎没有任何效果。
我的 app.yaml

# [START django_app]
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /static
  static_dir: static/
- url: .*
  script: mysite.wsgi.application

# Only pure Python libraries can be vendored
# Python libraries that use C extensions can
# only be included if they are libraries available
# as part of the AppEngine SDk
libraries:
- name: MySQLdb
  version: "latest"
# [END django_app]

我的 appengine_config:

# [START vendor]
from google.appengine.ext import vendor
vendor.add('lib')
# [END vendor]

【问题讨论】:

    标签: python django google-app-engine


    【解决方案1】:

    在撰写本文时,1.2.4b4 确实是应用引擎在生产中提供的最新 MySQLdb 版本。您没有提供有关您的设置的详细信息,但如果您从该 requirements.txt 在虚拟环境中安装,那么 MySQLdb.py 文件很可能是您上传到 GAE 生产的 Python 文件之一:确保 不 这样做,这样import MySQLdb 将获得 GAE 本身提供的版本(当然,在你的 app.yaml 中有适当的规范)。

    在本地,使用 1.2.4 开发,避免意外使用 1.2.4 未提供的 1.2.5 功能;但是,最重要的是,不要在您上传到应用引擎的目录树中以 MySQLdb.py 文件结尾。

    如果您提供您的 app.yaml 和您正在上传的目录树的相关详细信息,您可以让我们提供更多、更具体的帮助和信息。根据您在问题中选择提供的非常少的信息,这是迄今为止我们能做的最好的。

    【讨论】:

    • 从我上传到 GAE 的代码中删除了 Mysql-python 文件夹。它奏效了。
    猜你喜欢
    • 2015-09-02
    • 2011-10-31
    • 1970-01-01
    • 2016-06-21
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2019-06-25
    相关资源
    最近更新 更多