1
我想從my(yap)prolog腳本運行一個(python3)進程,並將其輸出格式化爲整數列表(例如, [1,2,3,4,5,6]
。使用Yap-Prolog從流中讀取列表
這是我做的:
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
我相信我可以正確運行的過程中,因爲[stdout(std)]
參數給process_create
程序輸出[1,2,3,4,5,6]
如預期。
奇怪的是,當我改變過程輸出一些常數項(如constant_term
)它仍然給出相同的PL_int64
錯誤。給進程的輸出添加一個點([1,2,3,4,5,6].
)不能解決錯誤。使用read_term/3
給出了相同的錯誤。 YAP-Prolog中未定義read_string/3
。
我該如何解決這個問題?