首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行GAE开发服务器时,本地MySQLdb连接与AttributeError的参数样式失败

问运行GAE开发服务器时,本地MySQLdb连接与AttributeError的参数样式失败
EN

Stack Overflow用户
提问于 2013-12-06 21:34:34
回答 1查看 4.8K关注 0票数 33

我正在针对Cloud构建一个GAE水瓶应用程序,并在构建过程中运行dev_appserver来测试应用程序。

但是,如果我将SQLALCHEMY_DATABASE_URI设置为mysql+gaerdbms:///appname?instance=instanceid URL,则在尝试调用db.create_all()时会得到以下跟踪

代码语言:javascript
复制
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'

怎么回事?为什么缺少(DB-API2.0必需的) paramstyle属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-06 21:34:34

这意味着MySQLdb模块丢失,导入失败。GAE本身并不随MySQLdb客户端库一起提供;安装MySQLdb (as instructed in the SDK documentation):

代码语言:javascript
复制
venv/bin/pip install mysql-python

或者使用操作系统包管理器在系统python中安装MySQLdb。

此错误是由充当存根的Google google.appengine.api.rdbms_mysqldb模块引起的,在paramstyle失败时没有paramstyle属性。它提供了一个存根connect()函数,它将引发一个更有用的异常,但是由于与SQLAlchemy的不幸交互,错误的信息量要少得多。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20433973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档