OSX使用用于python的swi prolog pyswip包

OSX使用用于python的swi prolog pyswip包,python,macos,Python,Macos,我试图为我的研究执行第三方prolog程序。同时,我发现由于程序声明,它需要执行pyswip包 from pyswip import Prolog 因此,按照安装文件中的说明在pyswip安装的根文件夹中安装此软件包后,仍然找不到该软件包,如输出错误: ImportError: Could not find the SWI-Prolog library in this platform. If you are sure it is installed, please open an issue

我试图为我的研究执行第三方prolog程序。同时,我发现由于程序声明,它需要执行pyswip包

from pyswip import Prolog
因此,按照安装文件中的说明在pyswip安装的根文件夹中安装此软件包后,仍然找不到该软件包,如输出错误:

ImportError: Could not find the SWI-Prolog library in this platform. If you are sure it is installed, please open an issue.
因此,经过一些调查,我发现python包的使用是从core.py文件调用的,在我的例子中,位于

/Library/Python/2.7/site-packages/pyswip
因此,通过分析这个文件,我可以找到输出错误文本,并得出结论,根据特定的行,没有找到路径

elif platform == "dar":  # Help with MacOS is welcome!!
所以我也注意到了这一点,这对MacOS很有帮助。在试图正确找到路径的方法中

(path, swiHome) = _findSwiplDar()
我注意到两个数组:一个带有包名的两个候选名称,另一个带有路径的候选名称。因此,我在我的OSX上搜索找到了第一个包名“libswipl.dylib”。完成后,我将特定的包路径添加到path数组中,现在一切正常

我知道这不是最好的解决方案,但我已经发现了事情是如何运作的,并解决了这个问题。如果有人知道在不更新core.py文件的情况下配置此类库的更好方法,我很高兴知道;-)

我希望这对别人有帮助