0

在 Ubuntu 中下载 PyGF 0.3 包后,我在 python 中运行以下命令http://www.grammaticalframework.org/libpgf/pygf/tutorial.html

xavi@xavi-T12C:~/PyGF-0.3$ python3
Python 3.3.1 (default, Apr 17 2013, 22:32:14) 
[GCC 4.7.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pgf.pygf import *
>>> import_pgf('Food.pgf')
>>> parse('this wine is very expensive',lang='en_US')
pgf_new_parser (pgf/parser.c:908): precondition failed
    concr != NULL
Aborted (core dumped)

这假设您在工作目录中有 Food.pgf 语法文件。“这酒很贵”这句话被那个语法覆盖了。现在就像这里:http://www.grammaticalframework.org/doc/gf-quickstart.html,可以通过在一个工作目录中包含 Food.gf、FoodEng.gf、FoodIta.gf 来准备 .pgf 文件,并使用以下命令:

gf -make FoodIta.gf FoodEng.gf

这假设您安装了 GF 的二进制版本(安装时间非常短)。这将像上面的代码一样编写要在 Python 中使用的 Food.pgf 文件。

错误来自什么?正如教程中明确指出的那样,它将工作并解析句子。虽然教程是Phrasebook.pgf语法,但假设它适用于各种 .pgf 语法。我也尝试过 Phrasebook(很大,同样的错误在那里)。食物很小,但很好尝试。

4

1 回答 1

1

它是,它接受一个句柄和一个符号名称,如果未找到符号,则_ctypes.dlsym返回地址或引发。OSError

根据修改后的问题进行编辑

首先确保您使用的是 Python 3.3。一些 Linux 发行版默认为 3.2。例如,Debian stable 使用 3.2,但 Debian testing 使用python3.3.

下载libpgf的源代码。我用的是 0.3 版。解压源并切换到目录。然后运行./configure​​,makeldconfig:

libpgf-0.3$ ./configure
libpgf-0.3$ make
libpgf-0.3$ sudo make install
libpgf-0.3$ sudo ldconfig -v

这假设您的系统已经配置为从源代码构建并sudo用于以 root 身份运行命令。后者允许将 libpgf 和 libgu 安装到系统目录,例如 /usr/local/lib。运行ldconfig更新运行时链接器 ld.so 的库缓存。详细说明请参阅man ldconfig

接下来解压 PyGF 源,切换到它的目录,然后运行以下命令:

PyGF-0.3$ python3.3 setup.py build
PyGF-0.3$ sudo python3.3 setup.py install
于 2013-07-08T21:36:08.387 回答