Назад | Перейти на главную страницу

Невозможно использовать mysql в движке приложений Google. Ошибка при загрузке модуля 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 работает и подключает меня к бэкэнду cloudql.

Я могу получить доступ ко всем таблицам там.

Но его запуск дает ту же ошибку.

У меня установлен 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',
    }
}

Если вы похожи на меня и используете сервер Ubuntu с Python 3.5, у меня было несколько мучительных часов, чтобы решить эту проблему. Сервер apache не начал использовать настройку wsgi, которую я использовал в своем virtualenv.

Итак, я попробовал все: pip install this и pip install this. Итак, к вашему сведению, для Python 3.5 вам необходимо установить pip-библиотеку mysqlclient для подключения к mysql через python и django. Однако я продолжал получать ту же ошибку, что и вы ... В конце концов, я запустил: easy_install mysqlclient просто, думаю, мне не хватало какой-то зависимости, которую easy_install получил и установил одним ударом.

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

Если вы установили 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 в удаленной среде, в которой вы развертываете свое приложение.