微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Ubuntu 12.04上使用SQLAlchemy查询的types错误,而不是在Windows上

我有一个脚本,我写了一个Windows框上的Python 2.7。 我已经在几台不同的机器上工作,所以我知道它“移动”了。

我现在正在build立一个Ubuntu的盒子(v12.04)。

在Ubuntu下相同的代码失败:

instance = session.query(formats_table). filter(formats_table.c.formatid==FormatID,formats_table.c.puid==PUID,formats_table.c.formatversion==FormatVersion,formats_table.c.formatmimetype==FormatMIMEType).all()

在Windows中运行良好,并没有问题

python解释器:中断并继续

在Ubuntu上导入matplotlib

Python,Quickly和Glade,在TextView中显示stdout

Python / IPython的ImportError:没有模块命名的网站

如何知道python从命令行运行?

在Ubuntu中失败:

TypeError: <lamba>() takes exactly 2 arguments (5 given)

我能做些什么来找出发生了什么问题?

我假设这行被parsing为5个不同的参数,而不是两个(session.query)和(filter),这表明括号没有被正确parsing?

Nginx的权限被拒绝13与静态内容的Django

简单密码通过我的python脚本logging

使用python来自动化交互?

Python的os输出

我如何确定是否从crontab执行python脚本?

你有两个不同版本的sqlAlchemy。

sqlAlchemy的filter方法

filter(*criterion)

使用sql表达式将给定的过滤标准应用于此查询的副本。

例如: session.query(MyClass).filter(MyClass.name == 'some name')

AND (0.7.5新增)将多个标准连接在一起:

session.query(MyClass).filter(MyClass.name == 'some name',MyClass.id > 5)

请注意,在0.7.5之前,在单个filter调用中不能有多个条件 – 您必须链接多个filter调用才能获得相同的效果。 就你而言,这看起来像:

instance = session.query(formats_table). filter(formats_table.c.formatid==FormatID). filter(formats_table.c.puid==PUID). filter(formats_table.c.formatversion==FormatVersion). filter(formats_table.c.formatmimetype==FormatMIMEType)

因此,被引用的“参数”是传递给filter的关键字参数 – 在您的Ubuntu版本中随附的sqlAlchemy版本中只能有一个,并提供四个参数。 你看不到的另一个参数是实例对象(通常称为self ),在调用实例方法时会自动传递。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐