2013-04-14 5 views
0

나는 nltk를 사용하는 장고 프로젝트를 가지고 있습니다. 시도하는 동안 세그먼트 화 오류가 발생합니다.파이썬 치료 분할 오류

import nltk 

정확한 행을 찾았 으면 collocations.py:38입니다. 나는 또한 django unit-tests와 django manage.py 쉘 (실제로 shell_plus에서이 오류가 발생하지만 뭔가 변경되지는 않는다)을 보았지만 커스텀 관리 명령에서는 그렇지 않다는 것을 알았다. 프로덕션 환경에서이 오류가 발생하지 않음)

django django 1.4.5, nltk 2.0.4, python 2.7.3을 사용합니다.

감사합니다.

UPDATE : 영향을하지 않은 2.7.4에 파이썬의 업데이트

UPDATE :

UPDATE를 초래하지 않은 0.12.0로 1.7.1와 scipy에 NumPy와의 업데이트 : 나는 세그먼트 폴트를

from scrapy.crawler import CrawlerProcess 
(I이 발생하지 segfault의 원인이되는 범위를 기능 모듈의 범위를 이사로 나는만큼 가정)의 원인이되는 문을 발견

크롤링 scrapy 프레임 워크에서 클래스입니다.이 클래스는 scream spider를 python 스크립트로 실행하기 위해 사용자 정의 모듈에서 사용했습니다. segfault가 NLTK 결함이 아니라 치료와 같은 것 같습니다. 아마도이 수업은 어떻게 든 nltk의 데이터를 다시 작성했기 때문에 그것이 세분화 된 것입니다.

+0

[collocations.py:38](https://github.com/nltk/nltk/blob/master/nltk/collocations.py#L38)은 'nltk.util import ingrams'입니다. ['nltk.util'] (https://github.com/nltk/nltk/blob/master/nltk/util.py)에서는 segfault를 일으킬 가능성이있는 항목을 가져 오지 않습니다. 가져 오기 트리를 따라 가면 stdlib에있는 것처럼 보입니다. 그게 옳은 줄이야? – Dougal

+0

@Dougal 귀하의 관심에 감사드립니다! 나는 그것이 NLTK가 아니라는 것을 알았다. 그것은 segfaulted이지만 scrapy이다. – eviltnan

답변

1

CrawlerProcess와 동일한 문제가 있습니다. Scrapy가 libxml2를 설치하지 못했습니다. 이것을 명령 프롬프트에 입력 해보십시오 :

easy_install lxml 
pip install scrapy --upgrade 

다음으로 내 프로그램이 올바르게 실행됩니다.