使用pyximport重新编译.pyx失败

时间:2016-01-20 10:44:10

标签: python cython

我写了fib.pyx包含斐波纳契函数的那个​​

def fib(int n):
    cdef int i
    cdef double a=0., b=1.
    for i in range(n):
        a,b = a+b, a
    return a

我得到了pyd模块

import pyximport
pyximport.install()
import fib

效果很好。但是当我稍微编辑fib.pyx并尝试导入它时,没有任何错误就没有反映出这种变化 在我重新启动ipython后,我尝试了

pyximport.install(reload_support=True)
import fib
fib.fib(10) # good result

# edit fib.pyx

from importlib import reload
reload(fib)

重新加载很好,因为它成功重新加载了现有的fib.pyd模块。但是我得到了较老的fib功能的结果。

如何使用fib.pyx重新编译import fib? 这不可能吗?

Environment: 
Python 3.4.3
Windows 7
IPython 3.2.1

1 个答案:

答案 0 :(得分:1)

尝试使用autoreload,如果它不起作用我恐怕你必须重新启动内核进程。

[1]: %load_ext autoreload

[2]: %autoreload 2