我有一个django项目,我使用nltk。我得到的分割错误,而试图Python Scrapy分割错误
import nltk
我发现确切的行它发生在哪里,它的collocations.py:38。 我也发现,只有在Django的unit-tests和django manage.py shell(实际上shell_plus,但我不会改变某些东西),但在自定义管理命令中(这可能意味着我在生产中不会得到这个错误)
我用django django 1.4.5,nltk 2.0.4,python 2.7.3。
谢谢!
UPDATE:更新蟒2.7.4并没有影响
UPDATE:更新numpy的的1.7.1和SciPy的到0.12.0没有影响
UPDATE :我发现声明,导致段错误(我想,尽可能多的我把它从模块范围移到功能范围,这导致段错误不会发生)
from scrapy.crawler import CrawlerProcess
这是从爬行scrapy
框架的类,我用它在自定义模块中执行scrapy蜘蛛作为python脚本。看起来segfault不是NLTK故障,而是scrapy。可能不知怎的,这个班改写了nltk的一些数据,这就是为什么它是分段式的。
[collocations.py:38](https://github.com/nltk/nltk/blob/master/nltk/collocations.py#L38)是'from nltk.util import ingrams'。 ['nltk.util'](https://github.com/nltk/nltk/blob/master/nltk/util.py)不会导入任何可能导致段错误的东西;在导入树下面,它似乎都来自stdlib。你确定这是正确的吗? – Dougal
@Dougal感谢您的关注!我发现,这不是NLTK,它是segfaulted,但scrapy – eviltnan