2013-10-01 2 views
1

방금 ​​우분투 12.04에서 13.04로 업데이트되었으며 작동에 사용되는 일부 코드를 이전하는 데 문제가 있습니다. 인터넷 검색은 일부 불분명 한 R 참조를 제외하고는 분명히 관련이있는 것으로 드러나지 않으며, 프로젝트에서 R을 사용하지만 마이그레이션에서 자르기를 기대하지는 않습니다. 이전에는 디버깅 오류를 다루지 않았지만 제 3 자 코드에서는 훨씬 적습니다. 어떻게해야합니까?Django South Seg Fault

(project)[email protected]:~/Projects/project/project$ python project/manage.py migrate 
Error: 'rho' must be an environment not NULL: detected in C-level eval 
Segmentation fault (core dumped) 

편집 : 그것은 아래의 대답에서은 ltrace를 사용하여 발견 RPY2에 문제처럼 보인다. 그것이 마이그레이션에 어떻게 생겨 났는지 궁금합니다.

EDIT2 : 내 R 버전이 Rpy2가 좋아하는 것 이상으로 업데이트되었습니다. 고정 된 것을 되 돌리는 것. ./manage.py migrate에서 이것이 어떻게 발생했는지는 신비 스럽습니다.

답변

2

많은 시스템에 이미 설치되어 있기 때문에 strace을 사용하기 시작했습니다. 이렇게하면 시스템 호출을 기반으로 현재 실행중인 모듈의 범위를 좁힐 수 있습니다. 예 :

$ strace -o ~/tmp/strace.log -f python project/manage.py migrate 

또는 ltrace을 설치하고 호출 순서를 확인하십시오. 문제가 스택 추적을 표시하는 등 bt 같은

$ gdb core 

사용 명령을 발생한 위치

$ sudo apt-get install ltrace 
$ ltrace python project/manage.py migrate 

핵심 덤프 되었기 때문에, 정확히 확인하기 위해 코어 GDB를 사용할 수 있습니다, 그 실패. 이를 더 쉽게하려면 디버깅 기호를 사용할 수있는 실행 파일/라이브러리를 찾아야합니다.

+0

굉장! 이 문제를 해결할 수 있을지는 모르겠지만 더 나은 디버깅을 위해 새로운 것을 배웠습니다. 고맙습니다 !! – karthikr

1

R의 C-API에서 R-3.0.2가 변경되었습니다. rpy2 버전을 업그레이드하십시오. 자세한 내용은 issue #150 on bitbucket을 참조하십시오.