Python, ImportError: cannot import name AbstractLazySequence
Python, ImportError: cannot import name AbstractLazySequence
我正在使用 nltk,但我面临的问题似乎与 nltk 无关。
我有一个名为 util.tokenize
的模块,其中有一些 类 并且我有以下第一行:
util/tokenizer.py
from nltk.tokenize.regexp import RegexpTokenizer
...
class SentTokenizer(object):
def __init__(self, stem=False, pattern='[^\w\-\']+'):
self.alg = RegexpTokenizer(pattern, gaps=True)
def __call__(self, text):
return self.alg.tokenize(text)
....
if __name__ == '__main__':
s_t = SentTokenizer()
s_t('blah blah')
当我从另一个模块调用那些 类 时,说 test.py
一切似乎都正常,但是 运行 tokenize.py
模块直接导致 ImportError。
File "tokenize.py", line 1, in <module>
...
File "Python27\lib\site-packages\nltk\corpus\reader\util.py", line 28, in <module>
from nltk.util import AbstractLazySequence, LazySubsequence, LazyConcatenation, py25
ImportError: cannot import name AbstractLazySequence
可能是什么问题?为什么它在从其他模块调用时有效?
test.py
from util.tokenize import SentTokenizer
s_t = SentTokenizer()
print s_t('blah blah')
平台是Windows。
我们确定这是由与 nltk.tokenize
和用户的 tokenize.py
的命名空间冲突引起的。重命名后 tokenize.py
,一切正常。
我正在使用 nltk,但我面临的问题似乎与 nltk 无关。
我有一个名为 util.tokenize
的模块,其中有一些 类 并且我有以下第一行:
util/tokenizer.py
from nltk.tokenize.regexp import RegexpTokenizer
...
class SentTokenizer(object):
def __init__(self, stem=False, pattern='[^\w\-\']+'):
self.alg = RegexpTokenizer(pattern, gaps=True)
def __call__(self, text):
return self.alg.tokenize(text)
....
if __name__ == '__main__':
s_t = SentTokenizer()
s_t('blah blah')
当我从另一个模块调用那些 类 时,说 test.py
一切似乎都正常,但是 运行 tokenize.py
模块直接导致 ImportError。
File "tokenize.py", line 1, in <module>
...
File "Python27\lib\site-packages\nltk\corpus\reader\util.py", line 28, in <module>
from nltk.util import AbstractLazySequence, LazySubsequence, LazyConcatenation, py25
ImportError: cannot import name AbstractLazySequence
可能是什么问题?为什么它在从其他模块调用时有效?
test.py
from util.tokenize import SentTokenizer
s_t = SentTokenizer()
print s_t('blah blah')
平台是Windows。
我们确定这是由与 nltk.tokenize
和用户的 tokenize.py
的命名空间冲突引起的。重命名后 tokenize.py
,一切正常。