我有一个django项目,我使用nltk。尝试
时出现分段错误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尚未生效
UPDATE:我找到了导致段错误的语句(我想,就像我将它从模块范围移到功能范围一样,这会导致不发生段错误)
from scrapy.crawler import CrawlerProcess
这是爬行scrapy
框架的类,我在自定义模块中使用它来执行scrapy spider作为python脚本。似乎segfault不是NLTK故障,而是scrapy。可能某种程度上这个类重写了nltk的一些数据,这就是为什么它是segfaulted。
答案 0 :(得分:1)
我遇到了与CrawlerProcess相同的问题。 Scrapy无法安装libxml2。尝试在命令提示符中输入:
easy_install lxml
pip install scrapy --upgrade
此后我的程序正确执行。