Я использую 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
Если вы установили MySQL-Python через pip, вероятно, произошел сбой при сборке расширения «_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. При желании вы можете загрузить компилятор MSVC++ для Python, но вам также потребуется установить сборку разработчика MySQL, включая заголовочные файлы и библиотеки C, и вы можете столкнуться с другими проблемами.
Конечно, это имеет значение только для локального запуска приложения на сервере разработки, поскольку среда выполнения Python App Engine уже включает MySQLdb в удаленной среде, где вы развертываете свое приложение.
решение2
Если вы похожи на меня и используете сервер Ubuntu с Python 3.5, то я только что провел несколько мучительных часов, пытаясь решить эту проблему. Сервер Apache не запускался с использованием настроек wsgi, которые у меня были, проходящих через мое virtualenv.
Итак, я попробовал все, pip install это и pip install то. Так что FYI для Python 3.5 вам нужно установить библиотеку pip mysqlclient для подключения к mysql через python и django. Однако я продолжал получать ту же ошибку, что и вы... В конце концов, я запустил:
easy_install mysqlclient
все просто, я думаю, что мне не хватало какой-то зависимости, которую easy_install получил и установил одним махом.
Удачи, надеюсь, это поможет вам или кому-то еще, кто нашел эту страницу в поисках света в конце туннеля.