Não é possível usar o mysql no Google App Engine - Erro ao carregar o módulo MySQLdb: Nenhum módulo chamado _mysql. Estou usando o CloudSQL

Não é possível usar o mysql no Google App Engine - Erro ao carregar o módulo MySQLdb: Nenhum módulo chamado _mysql. Estou usando o CloudSQL

Estou usando o googleAppEngineLauncher para tentar a conexão mysql.

Dá o registro

 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

Eu fizpip install MySQL-python

Até comandos como python manage.py dbshellfuncionam e me conectam ao back-end do cloudsql.

Posso acessar todas as tabelas lá.

Mas, executá-lo dá o mesmo erro.

Eu tenho o mysql 5.6 instalado.

Adicionando o seguinte ao app.yaml

- name: MySQLdb
  version: "latest"

também não ajuda, pois verifiquei o diretório de bibliotecas e não havia mysqldb.

Minhas configurações -

import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
            'HOST': '173.194.xxx.xxx',
            'NAME': 'my_database',
            'USER': 'root',
            'PASSWORD': 'xxxxxxxx',
    }
}

Responder1

Se você instalou o MySQL-Python via pip, provavelmente falhou na construção da extensão '_mysql', que é a extensão C e requer MSVC++ 9.0 para construir:

building '_mysql' extension

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

No Windows, sua melhor solução é apenas usar um instalador binário para MySQL-python, comohttp://sourceforge.net/projects/mysql-python. Você pode baixar o compilador MSVC++ para Python se desejar, mas também precisará instalar a compilação do desenvolvedor MySQL, incluindo os cabeçalhos e bibliotecas C, e poderá ter outros problemas.

É claro que isso só importa para a execução local do aplicativo no servidor de desenvolvimento, pois o ambiente de execução Python do App Engine já inclui MySQLdb no ambiente remoto onde você implanta seu aplicativo.

Responder2

Se você é como eu e está usando um servidor Ubuntu com Python 3.5, passei algumas horas angustiantes tentando resolver este. O servidor Apache não iniciava usando a configuração do wsgi que eu estava usando no meu virtualenv.

Então eu tentei de tudo, pip install this e pip install that. Então, para sua informação, para Python 3.5, você precisa ter a biblioteca pip mysqlclient instalada para conectar-se ao mysql através de python e django. Porém continuei recebendo o mesmo erro que você estava... No final o que fiz foi rodar: easy_install mysqlclient simples assim, acredito que estava faltando alguma dependência que o easy_install obteve e instalou de uma só vez.

Boa sorte, espero que ajude você ou outra pessoa que encontrou esta página procurando luz no fim do túnel.

informação relacionada