Python导入nltk错误

时间:2013-06-21 15:20:50

标签: 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
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'
>>> 

有什么想法解决这个问题吗?

4 个答案:

答案 0 :(得分:2)

可能是某个地方有一个名为're.py'的文件吗?

默认情况下,re模块有re.match,不会丢失。

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

找到它

答案 1 :(得分:0)

此问题看起来像循环依赖。 看一下这个答案attribution error。 nltk依赖于re模块,并且出于某种原因重新说它需要在完全加载之前导入nltk。 re没有nltk依赖。我认为这是因为python库路径中存在一些错误的re模块。

尝试直接在新终端中导入re并查看从哪里加载。您可能已将其删除并在默认位置安装正确的re模块。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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