Não é possível usar o mysql no motor do google app - Erro ao carregar o módulo MySQLdb: Nenhum módulo chamado _mysql. Estou usando o cloudSQL

1

Estou usando o googleAppEngineLauncher para experimentar a conexão do mysql.

Fornece o log

 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 fiz pip install MySQL-python

Até mesmo comandos como python manage.py dbshell funcionam e me conectam ao backend cloudsql.

Eu posso acessar todas as tabelas lá.

Mas, a execução 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, porque eu 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',
    }
}
    
por Kakshil Shah 03.05.2015 / 10:34

2 respostas

1

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

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 o MySQL-python, como o link . Você pode baixar o Compilador MSVC ++ para Python, se quiser, mas também precisará instalar a compilação do desenvolvedor MySQL, incluindo os cabeçalhos e bibliotecas C, e pode ter outros problemas.

Isso só é importante para a execução local do aplicativo no servidor de desenvolvimento, já que o tempo de execução do Python do App Engine já inclui o MySQLdb no ambiente remoto em que você implementa o aplicativo.

    
por 04.05.2015 / 02:08
1

Se você é como eu e está usando um servidor Ubuntu com o Python 3.5, eu tive algumas horas tentando resolver esse problema. O servidor apache não iria começar a usar a configuração wsgi que eu estava passando pelo meu virtualenv.

Então eu tentei de tudo, pip instale isso e pip instale isso. Então FYI for Python 3.5 você precisa ter o mysqlclient da biblioteca pip instalado para conectar-se ao mysql através do python e do django. No entanto, continuei recebendo o mesmo erro que você estava ... No final o que fiz foi correr: %código% simples assim, acredito que estava faltando alguma dependência que o easy_install conseguiu e instalou em um golpe.

Boa sorte, espero que ajude você ou alguém que encontrou esta página à procura de luz no fim do túnel.

    
por 31.01.2017 / 14:13