2013-06-21 47 views
2

,同時通過終端輸入NLTK我有這樣的Python的進口NLTK錯誤

[[email protected] hadoop]$ python 
Python 2.6.6 (r266:84292, Feb 21 2013, 23:54:59) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import nltk 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.6/site-packages/nltk/__init__.py", line 73, in <module> 
    from internals import config_java 
    File "/usr/lib/python2.6/site-packages/nltk/internals.py", line 10, in <module> 
    import subprocess 
    File "/usr/lib/python2.6/subprocess.py", line 425, in <module> 
    import pickle 
    File "/usr/lib/python2.6/pickle.py", line 165, in <module> 
    __all__.extend([x for x in dir() if re.match("[A-Z][A-Z0-9_]+$",x)]) 
AttributeError: 'module' object has no attribute 'match' 
>>> 

任何想法的錯誤來解決這個問題?

+0

看起來鹹菜模塊壞了。嘗試重新安裝python,甚至更好,升級到2.7 – J0HN

回答

2

難道是你有一個叫're.py'的文件嗎?

默認情況下,re模塊有re.match,沒有辦法認爲這是缺失。

您可以通過import reprint(re.__file__)

+0

+1拉我的頭髮! – Timmah

0

這個問題看起來像循環依賴的發現了這一點。 看看這個答案attribution error。 nltk依賴re模塊,由於某種原因,re說它需要在完全加載之前導入nltk。 re沒有nltk依賴性。我認爲這是因爲在Python庫路徑中出現了一些錯誤的重新模塊。

嘗試直接在新終端中導入re,並查看它從哪裏加載。您可能已將其刪除並在默認位置安裝正確的重新模塊。

0

嗨,我剛剛通過從我的代碼所在的目錄中刪除.pyc文件來解決此問題。

0

將您的python從2.6升級到2.7或更高,然後再試一次