我有一个为python2.7编写的脚本。我让它在几台不同的机器上工作,所以我知道它可以“移动”。在
我现在正在设置一个ubuntu box(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中,它运行良好,不会引起任何问题
在ubuntu中失败的原因是:
^{pr2}$我能做些什么来找出哪里出了问题?在
我假设这一行被解析为5个不同的参数,而不是两个(会话.查询)and(filter),这表示括号没有被正确解析?在
你有两个不同版本的SQLAlchemy。在
SQLAlchemy's ^{} method:
请注意,在0.7.5之前,在一个
filter
调用中不能有多个条件,必须链接多个filter
调用才能获得相同的效果。在你的情况下,这看起来像:因此,引用的“参数”是传递给
filter
的关键字参数,在Ubuntu版本附带的SQLAlchemy版本中只能有一个参数,并且您提供了四个参数。另一个您看不到的参数是instance对象(通常称为self
),它在您调用实例方法时自动传递。在相关问题 更多 >
编程相关推荐