![无法在 Google 应用引擎中使用 mysql - 加载 MySQLdb 模块时出错:没有名为 _mysql 的模块。我正在使用 cloudSQL](https://linux22.com/image/657436/%E6%97%A0%E6%B3%95%E5%9C%A8%20Google%20%E5%BA%94%E7%94%A8%E5%BC%95%E6%93%8E%E4%B8%AD%E4%BD%BF%E7%94%A8%20mysql%20-%20%E5%8A%A0%E8%BD%BD%20MySQLdb%20%E6%A8%A1%E5%9D%97%E6%97%B6%E5%87%BA%E9%94%99%EF%BC%9A%E6%B2%A1%E6%9C%89%E5%90%8D%E4%B8%BA%20_mysql%20%E7%9A%84%E6%A8%A1%E5%9D%97%E3%80%82%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%20cloudSQL.png)
我正在使用 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 一次性获取并安装的依赖项。
祝你好运,希望它能帮助你,或者帮助其他找到此页面并寻找隧道尽头光明的人。