postgres instalar insertar datos conectar con python google-app-engine sqlalchemy google-cloud-sql

python - instalar - La conexión local MySQLdb falla con AttributeError para paramstyle cuando se ejecuta el servidor de desarrollo GAE



mysql connector python (1)

Esto significa que el módulo MySQLdb falta y no se pudo importar. GAE SDK no viene con la biblioteca de cliente MySQLdb; instalar MySQLdb ( como se indica en la documentación del SDK ):

venv/bin/pip install mysql-python

o use su administrador de paquetes del sistema operativo para instalar MySQLdb en su sistema python.

El error se debe al módulo Google google.appengine.api.rdbms_mysqldb , que actúa como un apéndice, y no tiene un atributo paramstyle cuando falla la import MySQLdb . Se proporciona una función stub connect() que generará una excepción más útil, pero debido a una desafortunada interacción con SQLAlchemy, el error es mucho menos informativo.

Estoy construyendo una aplicación GAE Flask con Flask-Alchemy, contra Cloud SQL, y dev_appserver ejecutando dev_appserver para probar la aplicación a medida que la construyo.

Sin embargo, si configuro SQLALCHEMY_DATABASE_URI en una SQLALCHEMY_DATABASE_URI mysql+gaerdbms:///appname?instance=instanceid , obtengo el siguiente rastreo al intentar llamar a db.create_all() :

Traceback (most recent call last): # earlier lines omitted for brevity File "/Project/app/foo.bar/foo/bar/admin/__init__.py", line 26, in init_db db.create_all() File "/Project/app/distlib/flask_sqlalchemy/__init__.py", line 856, in create_all self._execute_for_all_tables(app, bind, ''create_all'') File "/Project/app/distlib/flask_sqlalchemy/__init__.py", line 848, in _execute_for_all_tables op(bind=self.get_engine(app, bind), tables=tables) File "/Project/app/distlib/flask_sqlalchemy/__init__.py", line 797, in get_engine return connector.get_engine() File "/Project/app/distlib/flask_sqlalchemy/__init__.py", line 473, in get_engine self._engine = rv = sqlalchemy.create_engine(info, **options) File "/Project/app/distlib/sqlalchemy/engine/__init__.py", line 332, in create_engine return strategy.create(*args, **kwargs) File "/Project/app/distlib/sqlalchemy/engine/strategies.py", line 69, in create dialect = dialect_cls(**dialect_args) File "/Project/app/distlib/sqlalchemy/dialects/mysql/base.py", line 1986, in __init__ default.DefaultDialect.__init__(self, **kwargs) File "/Project/app/distlib/sqlalchemy/engine/default.py", line 124, in __init__ self.paramstyle = self.dbapi.paramstyle AttributeError: ''module'' object has no attribute ''paramstyle''

¿Lo que da? ¿Por qué falta el atributo paramstyle (DB-API 2.0)?