2013-07-08 54 views
0

下載包PyGF 0.3在Ubuntu後,我在python運行命令以下http://www.grammaticalframework.org/libpgf/pygf/tutorial.htmlfrom ctypes import dlsysm ....錯誤提示:無法導入名稱dlsysm,請幫忙嗎?

[email protected]:~/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,該.pgf文件可以從具有Food.gf,FoodEng.gf,FoodIta.gf在一個工作目錄下編寫,並且使用命令:

gf -make FoodIta.gf FoodEng.gf 

此假設你有二進制版本GF安裝(安裝非常短)。 這將在上面的代碼中編寫要在Python中使用的Food.pgf文件。

錯誤來自哪裏?正如在教程中清楚地表示的那樣,它將工作並解析句子。雖然教程是與Phrasebook.pgf文法,但假設它可以與各種.pgf語法一起使用。我也嘗試過使用Phrasebook(很大,同樣的錯誤在那裏)。食物很少,但很好嘗試。

回答

1

它是_ctypes.dlsym,它帶有一個句柄和一個符號名稱,並返回地址,如果找不到該符號,則返回OSError

編輯根據經修訂的課題

若要確保您使用Python 3.3開始。一些Linux發行版默認爲3.2。例如,Debian穩定版使用3.2,但Debian測試版有python3.3

下載libpgf的源代碼。我使用0.3版本。解開源代碼並切換到目錄。然後運行./configuremakeldconfig

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

這裏假設你的系統已經配置爲從源代碼構建和使用sudo運行命令的根。後者可以將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 
+0

eryksun,我已經成功地從您提到的代碼上方安裝libpgf。然而,當你說PyGF-0.3 $ python3.3 setup.py build時,下一步的問題就出現了,因爲我的默認Python在Linux中是2.7版本。雖然我安裝了python 3.3.2,但默認路徑是:/opt/python3.3/bin/python3,以便在終端中輸入python 3.3版本。所以考慮到這一點,我嘗試這樣做:PyGF-0.3 $ /opt/python3.3/bin/python3 setup.py build,但它也不起作用。 – xavi

+0

'/opt/python3.3/bin/python3 setup.py build'後跟'sudo /opt/python3.3/bin/python3 setup.py install'應該可以。如果你在sudo PATH上添加一個符號鏈接(看看'sudo bash -c'echo $ PATH''),它會使它更容易。例如,要添加一個到'/ usr/local/bin'的鏈接,使用'sudo ln -s /opt/python3.3/bin/python3/usr/local/bin/python3.3'。 – eryksun

+0

eryksun,我在爲pyGF做這個設置時遇到了問題,因爲「NO module setuptools found」,因爲我安裝了分發,但是當安裝分發問題時出現「NO module zlib found」,並且在安裝zlib時出現以下問題HTTP://計算器。com/questions/17901775/error-when-processing-deb-zlib-package-in-uduntu我想你已經安裝過,任何建議,將不勝感激! – xavi

相關問題