Python导入nltk错误

Python导入nltk错误,python,nltk,python-2.6,Python,Nltk,Python 2.6,通过终端导入nltk时,我遇到了如下错误 [greenz@localhost 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

通过终端导入nltk时,我遇到了如下错误

[greenz@localhost 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'
>>> 
[greenz@localhosthadoop]$python
Python 2.6.6(r266:8429219013年2月21日23:54:59)
[GCC 4.4.7 20120313(Red Hat 4.4.7-3)]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入nltk
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.6/site packages/nltk/_init__.py”,第73行,在
从内部导入配置_java
文件“/usr/lib/python2.6/site packages/nltk/internals.py”,第10行,在
导入子流程
文件“/usr/lib/python2.6/subprocess.py”,第425行,在
进口泡菜
文件“/usr/lib/python2.6/pickle.py”,第165行,在
__所有扩展([x表示目录中的x(),如果重新匹配(“[A-Z][A-Z0-9_uz]+$”,x)])
AttributeError:“模块”对象没有属性“匹配”
>>> 

有没有办法解决这个问题?

可能是因为您在某处有一个名为“re.py”的文件

默认情况下,re模块具有
re.match
,不可能缺少此功能


您可以通过
导入re
打印(re.\uuuu文件)

发现这个问题看起来像是循环依赖。 看看这个答案。nltk依赖于re模块,出于某种原因,re表示需要在完全加载之前导入nltk。re没有nltk依赖项。我认为这是因为python库路径中出现了一些错误的re模块


尝试直接在新终端中导入re,并查看从何处加载。您可能已经删除了它,并在默认位置安装了正确的re模块。

您好,我刚刚通过从代码所在的目录中删除.pyc文件解决了这个问题

将python从2.6升级到2.7或更高版本,然后重试

看起来pickle模块已损坏。尝试重新安装python,或者更好地升级到2.7