我正在使用 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 一次性获取并安装的依赖项。
祝你好运,希望它能帮助你,或者帮助其他找到此页面并寻找隧道尽头光明的人。