';swipl#u qid';在Python应用程序中被忽略

';swipl#u qid';在Python应用程序中被忽略,python,swi-prolog,Python,Swi Prolog,我开发的python应用程序通过pyswip连接到Prolog。 下面的代码是我在prolog中提问时使用的 self.prolog = Prolog() self.prolog.consult("Checker.pl") self.prolog.query("playX") 这是我的Prolog代码的示例 playX :- init(B), assert(min_to_move(x/_)),assert(max_to_move(o/_)), play(hu

我开发的python应用程序通过pyswip连接到Prolog。
下面的代码是我在prolog中提问时使用的

self.prolog = Prolog()
self.prolog.consult("Checker.pl")
self.prolog.query("playX")
这是我的Prolog代码的示例

playX :-
      init(B),
      assert(min_to_move(x/_)),assert(max_to_move(o/_)),
      play(human, x, B).
当查询(“playX”)时,会出现一条消息

Exception AttributeError: 'swipl_qid' in <bound method _QueryWrapper.__del__ of <pyswip.prolog._QueryWrapper object at 0x0000000004620288>> ignored
异常属性错误:忽略中的“swipl_qid”
发生了什么事


另外,我使用了所有64位:Python 2.7、SWI Prolog、pyswip、Visual Studio 2013

实际上,如果不迭代或强制转换查询结果,这不是一个错误,而是一条奇怪的消息。如果您不是:

self.prolog.query("playX")
你写道:

result = list(self.prolog.query("playX"))

然后变量“result”将包含查询的解决方案集(在本例中,您将得到空列表[]),并且不会引发异常。

您需要像在Python中一样执行查询

对于self.prolog.query(“playX”)中的x: 打印x