SWI-Prolog 找不到 pce 库
SWI-Prolog can't find pce library
我在这上面浪费了一整天,找不到解决办法。由于 Google 没有提供任何其他类似的问题,我确定我一定是做错了什么。
我在 windows 10 上全新安装了 swi-prolog 8.2.3.1。我确保选中了图形选项。主 swipl 文件夹中有一个 xpce 文件夹。当我尝试将 xpce 库加载到序言中时,出现以下错误:
?- [library('pce')].
ERROR: source_sink `library(pce)' does not exist
ERROR: In:
ERROR: [20] throw(error(existence_error(source_sink,...),_8462))
ERROR: [16] '$resolve_source_path'(library(pce),_8494,[expand(true)]) at c:/program files/swipl/boot/init.pl:2315
ERROR: [15] '$load_file'(library(pce),user,[expand(true)]) at c:/program files/swipl/boot/init.pl:2289
ERROR: [9] <user>
ERROR:
ERROR: Note: some frames are missing due to last-call optimization.
ERROR: Re-run your program in debug mode (:- debug.) to get more detail.
我试图查阅一个包含 :- use_module(library(pce)).
的文件,但得到了同样的错误。我不知道如何进行。它与同一台机器上的 wsl 上的 ubunutu 一起工作得很好,但是没有任何图形界面,它只能帮助确保命令正确。
有关@david-tonhofer 解决方案结果的更多信息:
我在“C:\Program Files\swipl\xpce\prolog\lib”中有这个文件。所以我尝试了以下方法:
?- file_search_path(library,X).
X = app_config(lib) ;
X = swi(library) ;
X = swi(library/clp) ;
false.
2 ?- assertz(file_search_path(library,pce('prolog/lib'))).
true.
3 ?- file_search_path(library,X).
X = app_config(lib) ;
X = swi(library) ;
X = swi(library/clp) ;
X = pce('prolog/lib').
4 ?- file_search_path(library,pce('prolog/lib')).
true.
5 ?- file_search_path(pce,X).
false.
6 ?- assertz(file_search_path(pce,'C:/Program Files/swipl/xpce/')).
true.
7 ?- file_search_path(pce,X).
X = 'C:/Program Files/swipl/xpce/'.
8 ?- use_module(library(pce)).
true.
应该有一个文件
./swiplexe_8.3.14/lib/swipl/xpce/prolog/lib/pce.pl
在你的安装目录中。
通话中
?- use_module(library(pce)).
在 Prolog 的顶层或
:- use_module(library(pce)).
指示它加载在库路径中找到的 pce.pl
。
可能是你的库路径不完整....
通过发布
查询您的搜索路径
?- file_search_path(library,X).
X = app_config(lib) ;
X = swi(library) ;
X = swi(library/clp) ;
X = pce('prolog/lib'). <--- should be there
通过发布
扩展您的搜索路径
?- assertz(file_search_path(library,SOME_PATH_AS_STRING_OR_ATOM)).
然而,事实
file_search_path(library,pce('prolog/lib')).
表示二级查找。
我们还需要确定 pce
已设置:
我有这个:
?- file_search_path(pce,X).
X = '/usr/local/logic/swiplexe_8.3.14/lib/swipl/xpce'.
所以可能需要发布
?- assertz(file_search_path(pce,DIR_OF_XPCE_AS_STRING_OR_ATOM)).
我在这上面浪费了一整天,找不到解决办法。由于 Google 没有提供任何其他类似的问题,我确定我一定是做错了什么。
我在 windows 10 上全新安装了 swi-prolog 8.2.3.1。我确保选中了图形选项。主 swipl 文件夹中有一个 xpce 文件夹。当我尝试将 xpce 库加载到序言中时,出现以下错误:
?- [library('pce')].
ERROR: source_sink `library(pce)' does not exist
ERROR: In:
ERROR: [20] throw(error(existence_error(source_sink,...),_8462))
ERROR: [16] '$resolve_source_path'(library(pce),_8494,[expand(true)]) at c:/program files/swipl/boot/init.pl:2315
ERROR: [15] '$load_file'(library(pce),user,[expand(true)]) at c:/program files/swipl/boot/init.pl:2289
ERROR: [9] <user>
ERROR:
ERROR: Note: some frames are missing due to last-call optimization.
ERROR: Re-run your program in debug mode (:- debug.) to get more detail.
我试图查阅一个包含 :- use_module(library(pce)).
的文件,但得到了同样的错误。我不知道如何进行。它与同一台机器上的 wsl 上的 ubunutu 一起工作得很好,但是没有任何图形界面,它只能帮助确保命令正确。
有关@david-tonhofer 解决方案结果的更多信息:
我在“C:\Program Files\swipl\xpce\prolog\lib”中有这个文件。所以我尝试了以下方法:
?- file_search_path(library,X).
X = app_config(lib) ;
X = swi(library) ;
X = swi(library/clp) ;
false.
2 ?- assertz(file_search_path(library,pce('prolog/lib'))).
true.
3 ?- file_search_path(library,X).
X = app_config(lib) ;
X = swi(library) ;
X = swi(library/clp) ;
X = pce('prolog/lib').
4 ?- file_search_path(library,pce('prolog/lib')).
true.
5 ?- file_search_path(pce,X).
false.
6 ?- assertz(file_search_path(pce,'C:/Program Files/swipl/xpce/')).
true.
7 ?- file_search_path(pce,X).
X = 'C:/Program Files/swipl/xpce/'.
8 ?- use_module(library(pce)).
true.
应该有一个文件
./swiplexe_8.3.14/lib/swipl/xpce/prolog/lib/pce.pl
在你的安装目录中。
通话中
?- use_module(library(pce)).
在 Prolog 的顶层或
:- use_module(library(pce)).
指示它加载在库路径中找到的 pce.pl
。
可能是你的库路径不完整....
通过发布
查询您的搜索路径?- file_search_path(library,X).
X = app_config(lib) ;
X = swi(library) ;
X = swi(library/clp) ;
X = pce('prolog/lib'). <--- should be there
通过发布
扩展您的搜索路径?- assertz(file_search_path(library,SOME_PATH_AS_STRING_OR_ATOM)).
然而,事实
file_search_path(library,pce('prolog/lib')).
表示二级查找。
我们还需要确定 pce
已设置:
我有这个:
?- file_search_path(pce,X).
X = '/usr/local/logic/swiplexe_8.3.14/lib/swipl/xpce'.
所以可能需要发布
?- assertz(file_search_path(pce,DIR_OF_XPCE_AS_STRING_OR_ATOM)).