【问题标题】:nltk was unable to find mace4nltk 找不到 mace4
【发布时间】:2014-11-08 18:54:17
【问题描述】:

在执行下面的代码时,我遇到了上述错误。

我从http://www.cs.unm.edu/~mccune/prover9/download/ 下载了所需的包并进行了配置。但仍然是同样的问题。

我收到此错误:

>>> import nltk
>>> dt = nltk.DiscourseTester(['A student dances', 'Every student is a person'])
>>> dt.readings()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/discourse.py", line 351, in readings
    self._construct_threads()
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/discourse.py", line 297, in _construct_threads
    consistency_checked = self._check_consistency(self._threads)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/discourse.py", line 393, in _check_consistency
    modelfound = mb.build_model()
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/api.py", line 333, in build_model
    verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/mace.py", line 202, in _build_model
    verbose=verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/mace.py", line 215, in _call_mace4
    self._mace4_bin = self._find_binary('mace4', verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/prover9.py", line 166, in _find_binary
    verbose=verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 544, in find_binary
    binary_names, url, verbose))
  File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 538, in find_binary_iter
    url, verbose):
  File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 517, in find_file_iter
    raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
LookupError: 

===========================================================================
NLTK was unable to find the mace4 file!
Use software specific configuration paramaters or set the PROVER9HOME environment variable.

  Searched in:
    - /usr/local/bin/prover9
    - /usr/local/bin/prover9/bin
    - /usr/local/bin
    - /usr/bin
    - /usr/local/prover9
    - /usr/local/share/prover9

在通过make all 配置 LADR-2009-11 时,过程结束

.o utilities.o provers.o foffer.o ../ladr/libladr.a
search.o: In function `search':
search.c:(.text+0x6e54): undefined reference to `round'
../ladr/libladr.a(avltree.o): In function `avl_item_at_position':
avltree.c:(.text+0x7cb): undefined reference to `ceil'
collect2: error: ld returned 1 exit status
make[1]: *** [prover9] Error 1
make[1]: Leaving directory `/root/Desktop/karim/software/LADR-2009-11A/provers.src'
make: *** [all] Error 2

【问题讨论】:

    标签: python nltk


    【解决方案1】:

    这对我有用。我在github上找到了issue 193

    简述

    • 下载gui
    • 下载dll
    • 将下载的dll放入C:\Program Files (x86)\Prover9-Mace4
    • 创建Windows系统环境变量PROVER9并将其设置为C:\Program Files (x86)\Prover9-Mace4\bin-win32

    【讨论】:

      【解决方案2】:

      我今天遇到了完全相同的问题。通过将-lm 移动到涉及-lm 的所有行的末尾来修复它。编辑 LADR-2009-11A/provers.src 中的文件 Makefile 使其如下所示:

       65 prover9: prover9.o $(OBJECTS)
       66     $(CC) $(CFLAGS) -o prover9 prover9.o $(OBJECTS) ../ladr/libladr.a -lm
       67
       68 fof-prover9: fof-prover9.o $(OBJECTS)
       69     $(CC) $(CFLAGS) -o fof-prover9 fof-prover9.o $(OBJECTS) ../ladr/libladr.a -lm
       70
       71 ladr_to_tptp: ladr_to_tptp.o $(OBJECTS)
       72     $(CC) $(CFLAGS) -o ladr_to_tptp ladr_to_tptp.o $(OBJECTS) ../ladr/libladr.a -lm
       73
       74 tptp_to_ladr: tptp_to_ladr.o $(OBJECTS)
       75     $(CC) $(CFLAGS) -o tptp_to_ladr tptp_to_ladr.o $(OBJECTS) ../ladr/libladr.a -lm
       76
       77 autosketches4: autosketches4.o $(OBJECTS)
       78     $(CC) $(CFLAGS) -o autosketches4 autosketches4.o $(OBJECTS) ../ladr/libladr.a -lm
       79
       80 newauto: newauto.o $(OBJECTS)
       81     $(CC) $(CFLAGS) -o newauto newauto.o $(OBJECTS) ../ladr/libladr.a -lm
       82
       83 newsax: newsax.o $(OBJECTS)
       84     $(CC) $(CFLAGS) -o newsax newsax.o $(OBJECTS) ../ladr/libladr.a -lm
      

      【讨论】:

        【解决方案3】:

        我通过修改 nltk/inference/prover9.py 文件解决了我的问题。在定义 binary_locations(self) 的第 144 行中,我添加了此文件夹的路径:

        C:\Program Files (x86)\Prover9-Mace4\bin-win32(注意:不是证明者文件夹,而是 bin-win32 子文件夹)。在那里你会找到prover9.exemace4.exe 文件。

        最后,我不知道这是否相关,但我下载了此处找到的 GUI:http://www.cs.unm.edu/~mccune/prover9/gui/v05.html。使用 Windows 10

        【讨论】:

          【解决方案4】:

          用户@mircea 已经回答了关于 Prover9 和 Mace 的类似问题。看看Unable to Open Prover9 and Mace。这是关于设置你的图书馆的路径,比如

          prover = nltk.Prover9() prover.config_prover9(r'd:/prover9/bin')

          【讨论】:

            【解决方案5】:
            NLTK was unable to find the mace4
            

            make: *** [all] Error 2
            

            也许这很明显,但您需要成功构建 LADR/Prover9。只有在那之后,您才能使用nltk.Prover9()nltk.MaceCommand(...)

            那么为什么会出现编译错误?在您的制作文件中查看一些可能的答案use gcc flags: -std=c99 and -lm

            【讨论】:

              猜你喜欢
              • 2015-02-28
              • 2015-03-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-11-16
              • 2021-04-20
              相关资源
              最近更新 更多