Mar*_*ers 30 python google-app-engine sqlalchemy google-cloud-sql
我正在使用Flask-Alchemy构建一个针对Cloud SQL的GAE Flask应用程序,并在dev_appserver构建它时运行以测试应用程序.
但是,如果我将URL 设置SQLALCHEMY_DATABASE_URI为mysql+gaerdbms:///appname?instance=instanceidURL,则在尝试调用时会收到以下回溯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'
是什么赋予了?为什么paramstyle缺少(需要DB-API 2.0)属性?
Mar*_*ers 15
这意味着MySQLdb模块丢失且无法导入.GAE SDK本身并不带有MySQLdb客户端库; 安装MySQLdb(按照SDK文档中的说明):
venv/bin/pip install mysql-python
或使用您的OS包管理器在您的系统python中安装MySQLdb.
该错误是由google.appengine.api.rdbms_mysqldb作为存根的Google 模块引起的,paramstyle在import MySQLdb失败时没有属性.提供了一个存根connect()函数,它将引发一个更有用的异常,但是由于与SQLAlchemy的不幸交互,错误的信息量很少.
| 归档时间: | 
 | 
| 查看次数: | 3624 次 | 
| 最近记录: |