Невозможно использовать mysql в google app engine - Ошибка загрузки модуля MySQLdb: нет модуля с именем _mysql. Я использую cloudSQL

Невозможно использовать mysql в google app engine - Ошибка загрузки модуля 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

Если вы установили 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 получил и установил одним махом.

Удачи, надеюсь, это поможет вам или кому-то еще, кто нашел эту страницу в поисках света в конце туннеля.

Связанный контент