On Oct 11, 2009, at 4:45 PM, Yusniel wrote:

Hi. I did installed a library for python named pyswip-0.2.2 but when I
run a python example with the next lines, the python interpreter, it
throw me the following error: "Error en el bus". The code lines are:

from pyswip.prolog import Prolog
from pyswip.easy import getList, registerForeign

N = 3  # Number of disks

def main():
   def notify(t):
       print "move disk from %s pole to %s pole." % tuple(t)
   notify.arity = 1

   prolog = Prolog()
   registerForeign(notify)
   prolog.consult("hanoi.pl")
   list(prolog.query("hanoi(%d)" % N))

if __name__ == "__main__":
   main()

where "hanoy.pl" is a program with python code. Any solution for this
error?. Thanks.

Are you on a Mac by any chance? I get a "bus error" out of Python once in a while, usually when a C library has done something bad. I don't know if this error is specific to OS X or not.

The first thing you need to do is comment out lines one by one to see where the problem occurs. I'd start by commenting out all four calls to the pyswip.prolog library:

#   prolog = Prolog()
#   registerForeign(notify)
#   prolog.consult("hanoi.pl")
#   list(prolog.query("hanoi(%d)" % N))

If the bus error no longer occurs, then you know the problem is in the pyswip.prolog library. With that knowledge, I'd move to the mailing list or newsgroup for pyswip.

Hope that helps
Philip




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to