无法在 Google 应用引擎中使用 mysql - 加载 MySQLdb 模块时出错:没有名为 _mysql 的模块。我正在使用 cloudSQL

无法在 Google 应用引擎中使用 mysql - 加载 MySQLdb 模块时出错:没有名为 _mysql 的模块。我正在使用 cloudSQL

我正在使用 googleAppEngineLauncher 尝试 mysql 连接。

它给出了日志

 File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/db/backends/mysql/base.py", line 17, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql

我已经做好了pip install MySQL-python

甚至像这样的命令也python manage.py dbshell可以工作,并将我连接到 cloudsql 后端。

我可以访问那里的所有表格。

但是,运行它会出现同样的错误。

我已经安装了 mysql 5.6。

将以下内容添加到 app.yaml

- name: MySQLdb
  version: "latest"

也无济于事,因为我检查了库目录,没有 mysqldb。

我的设置 -

import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
            'HOST': '173.194.xxx.xxx',
            'NAME': 'my_database',
            'USER': 'root',
            'PASSWORD': 'xxxxxxxx',
    }
}

答案1

如果您通过 pip 安装了 MySQL-Python,则可能无法构建“_mysql”扩展,该扩展是 C 扩展,需要 MSVC++ 9.0 才能构建:

building '_mysql' extension

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

在 Windows 上,最好的解决方案是使用 MySQL-python 的二进制安装程序,例如http://sourceforge.net/projects/mysql-python。如果需要,您可以下载适用于 Python 的 MSVC++ 编译器,但您还需要安装包含 C 头文件和库的 MySQL 开发人员版本,并且可能会遇到其他问题。

当然,这只对在开发服务器上本地运行应用程序很重要,因为 App Engine Python 运行时已经在您部署应用程序的远程环境中包含 MySQLdb。

答案2

如果您和我一样,使用的是安装了 Python 3.5 的 Ubuntu 服务器,我刚刚花了几个小时才解决这个问题。Apache 服务器无法使用我通过虚拟环境设置的 wsgi 设置启动。

所以我尝试了所有方法,pip 安装这个和 pip 安装那个。因此,仅供参考,对于 Python 3.5,您需要安装 pip 库 mysqlclient 才能通过 python 和 django 连接到 mysql。但是我一直收到与您相同的错误...最后我所做的就是运行: easy_install mysqlclient 就这么简单,我相信我缺少一些 easy_install 一次性获取并安装的依赖项。

祝你好运,希望它能帮助你,或者帮助其他找到此页面并寻找隧道尽头光明的人。

相关内容