我正在使用Ubuntu12.04,并试图编写一个python插件来查询Rhythmbox数据库。Rhythmbox的版本是v2.96,但是这个问题在v2.97中也会出现。当我执行python查询时,Ubuntu会因为一个分段错误而崩溃。在
我需要确认以下是正确的,如果我发现了一个特定于Ubuntu的bug或者我误解了如何正确地查询。如果其他人使用另一个发行版可以确认-这将是最受欢迎的。在
我已经在bugzilla上提交了一份关于分段错误的bug report。然而,我的问题并不是严格意义上的,而是要确认正确的python代码来查询数据。在
因此,我的问题是:下面的代码片段是正确的查询RhythyBox数据库,还是需要安装一个附加的包来启用查询。在
步骤:
from gi.repository import RB, GLib db = shell.props.db query_model = RB.RhythmDBQueryModel.new_empty(db) query = GLib.PtrArray() db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.ARTIST, 'some artist name' ) db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.TITLE, 'some song name' ) db.do_full_query_parsed(query_model, query) for row in query_model: print row[0].get_string( RB.RhythmDBPropType.ARTIST ) print row[0].get_string( RB.RhythmDBPropType.TITLE )
如果我输入这行代码时ubuntu12.04,ubuntu会因为一个分段错误而崩溃
^{pr2}$因此,我是否正确地使用了调用中的第一个参数查询指针数组(PtrArray),或者我的查询函数参数是否不正确?在
答案是
好吧,这个问题确实是个问题-但回答我自己的问题
是在Rhythbox中查询数据的语法如问题中所述。在
但是还有一个。。。
查询64位数据仅适用于linux。在
是的,真的-我已经测试了32位现场cd的Fedora17以及LMDE。两者都表现出与ubuntu12.04相同的分段错误问题。在
共同的原因是我在测试ubuntu12.04/fedora17和LMDE的32位版本。在
在它们的64位变体中测试这三个变量的工作与预期一样。在
32位的问题是一个bug——已经在bugzilla上报道过了——但是这个问题已经得到了回答。在
谢谢。在
我也碰到过这个。我通过手动迭代库来解决这个问题:
相关问题 更多 >
编程相关推荐