0

我有一个使用 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 的一些数据,这就是它出现段错误的原因。

4

1 回答 1

2

我对 CrawlerProcess 也有同样的问题。Scrapy 未能安装 libxml2。尝试在命令提示符中输入:

easy_install lxml
pip install scrapy --upgrade

在此之后我的程序正确执行。

于 2016-02-05T23:26:03.857 回答