Stream 使用Yap Prolog从流中读取列表
我想从我的(yap)prolog脚本运行(python3)进程,并读取格式化为整数列表的输出,例如Stream 使用Yap Prolog从流中读取列表,stream,prolog,pipe,yap,Stream,Prolog,Pipe,Yap,我想从我的(yap)prolog脚本运行(python3)进程,并读取格式化为整数列表的输出,例如[1,2,3,4,5,6] 我就是这么做的: process_create(path(python3), ['my_script.py', MyParam], [stdout(pipe(Out))]), read(Out, OutputList), close(Out). 但是,它在读取/2谓词时失败,错误如下: PL_unify_term: PL_int64 not suppor
[1,2,3,4,5,6]
我就是这么做的:
process_create(path(python3),
['my_script.py', MyParam],
[stdout(pipe(Out))]),
read(Out, OutputList),
close(Out).
但是,它在读取/2谓词时失败,错误如下:
PL_unify_term: PL_int64 not supported
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
BrokenPipeError: [Errno 32] Broken pipe
PL\u unified\u术语:不支持PL\u int64
在中忽略异常:
断管错误:[Errno 32]断管
我确信我可以正确运行该进程,因为在[stdout(std)]
参数指定给进程时,程序会按预期输出[1,2,3,4,5,6]
奇怪的是,当我将进程更改为输出某个常量项时(如constant\u term
),它仍然会给出相同的PL\u int64
错误。在进程的输出中添加点([1,2,3,4,5,6]。
)并不能解决错误。使用read\u term/3
会产生相同的错误<代码>读取字符串/3
在YAP Prolog中未定义
我怎样才能解决这个问题 在询问我收到的yap用户邮件列表后
使用libGMP选项重新编译了YAP Prolog 6.2.2,现在可以运行了。它也可能发生在32位YAP中 在询问我收到的yap用户邮件列表后 使用libGMP选项重新编译了YAP Prolog 6.2.2,现在可以运行了。它也可能发生在32位YAP中