为什么 Cython 会导致 Python 崩溃?

Sea*_*ean 5 python cython

我刚刚开始使用 Cython 并试图实现一个简单的斐波那契函数,如下所述:

http://docs.cython.org/src/tutorial/cython_tutorial.html

问题是,当我尝试为给定的输入运行该函数时,在 Spyder 中,内核死亡并且 python 崩溃。

具体来说,如果我打开 Spyder 并运行

%%file cython_fib.pyx
def fib(n):

    a, b = 0, 1
    while b < n:

        print b,
        a, b = b, a + b
Run Code Online (Sandbox Code Playgroud)

然后创建文件 cython_fib.pyx。然后我可以跑

import pyximport; pyximport.install()
import cython_fib 
Run Code Online (Sandbox Code Playgroud)

导入 Cython 函数 cython_fib。在进程的这个阶段,Spyder 使用了大约 80% 的内存。当我尝试调用该函数时,

cython_fib.fib(2000)
Run Code Online (Sandbox Code Playgroud)

Spyder 中的 IPython 控制台抛出错误

It seems the kernel died unexpectedly. Use 'Restart kernel' to continue using this console.
Run Code Online (Sandbox Code Playgroud)

反复。

是什么导致了这次崩溃?显然,使用 Cython 会占用大量内存,但对于这样一个简单的示例,这应该不是问题。

我在 Windows 7 上使用 Anaconda 2.0.1 和 Python 3.4。