我有一个使用 nltk 的 django 项目。我在尝试时遇到分段错误
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。
谢谢!
更新:将 python 更新到 2.7.4 尚未生效
更新: numpy 到 1.7.1 和 scipy 到 0.12.0 的更新没有影响
更新:我找到了导致段错误的语句(我想,就像我将它从模块范围移动到函数范围一样,这导致段错误不会发生)
from scrapy.crawler import CrawlerProcess
它是来自爬虫scrapy
框架的类,我在自定义模块中使用它来将scrapy spider作为python脚本执行。似乎段错误不是NLTK错误,而是scrapy。可能这个类以某种方式重写了 nltk 的一些数据,这就是它出现段错误的原因。