2016-01-20 68 views
1

我寫fib.pyx包含斐波納契功能可按類似重新編譯.pyx與pyximport失敗

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.pyximport fib? 這不可能嗎?

Environment: 
Python 3.4.3 
Windows 7 
IPython 3.2.1 

回答

1

autoreload試一下,如果不行的話恐怕你必須重新啓動內核進程。

[1]: %load_ext autoreload 

[2]: %autoreload 2 
+0

它沒有工作......重新加載pyd模塊似乎不錯,但pyximport不編譯新的pyx文件。 – gunjin