Django South Seg Fault

时间:2013-10-01 23:21:11

标签: django segmentation-fault django-south

我刚刚从Ubuntu 12.04更新到13.04,我在迁移一些过去常用的代码时遇到了问题。除了一些模糊的R引用外,谷歌搜索没有透露任何明显看起来相关的内容,尽管我的项目确实使用了R,但我不希望它在迁移中出现。我以前从未处理调试seg故障,更不用说第三方代码了。我该怎么办?

(project)ben@Watt:~/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)

编辑:看起来像rpy2的问题,使用下面答案中的ltrace找到。仍然想知道迁移是如何形成的。

EDIT2:我的R版本已经超出了Rpy2的喜好。还原固定的东西。如何在./manage.py迁移中出现这对我来说是神秘的。

2 个答案:

答案 0 :(得分:3)

我首先使用strace,因为它已经安装在许多系统上。这可能使您能够根据所进行的系统调用缩小当前正在执行的模块。例如

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

或安装ltrace并查看通话顺序。

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

如果失败了,因为核心已经被转储,你可以在核心上使用gdb来查看问题发生的确切位置

$ gdb core

使用bt之类的命令来显示堆栈跟踪。为了使这更容易,您可能需要找到可用调试符号的可执行文件/库。

答案 1 :(得分:1)

R的C-API与R-3.0.2有所变化。升级您的rpy2版本。 有关详细信息,请参阅issue #150 on bitbucket