Cython教程展示瞭如何在Cython中使用Numpy的一個很好的例子。不過,我有一個使用scipy.stats包代碼,並試圖編譯代碼時,我的錯誤,如:(?)Python/Cython:在Cython中使用SciPy
dvi.pyx:7:8: 'scipy.stats.pxd' not found
我擔心SciPy的是不支持用Cython。有人可以評論Cython的scipy使用情況,還是指向某些資源/教程的方向? Thannks!
Cython教程展示瞭如何在Cython中使用Numpy的一個很好的例子。不過,我有一個使用scipy.stats包代碼,並試圖編譯代碼時,我的錯誤,如:(?)Python/Cython:在Cython中使用SciPy
dvi.pyx:7:8: 'scipy.stats.pxd' not found
我擔心SciPy的是不支持用Cython。有人可以評論Cython的scipy使用情況,還是指向某些資源/教程的方向? Thannks!
於是我發現了用Cython谷歌集團(https://groups.google.com/forum/?fromgroups#!searchin/cython-users/using$20scipy/cython-users/CF9GqYN1aPU/WKC-N9c6zpgJ)
代碼顯示以下的進口:
import pylab as PL
from scipy import integrate
from scipy import optimize
from scipy.integrate import odeint
import numpy as np
cimport numpy as np
cimport cython
這給了我信心,我可以SciPy的編譯。當添加cimport cython
聲明,我收到以下編譯錯誤:
dvi.c:237:31: error: numpy/arrayobject.h: No such file or directory
dvi.c:238:31: error: numpy/ufuncobject.h: No such file or directory
這似乎像有一個路徑或目錄的問題。事實上,我是正確的,有一個帖子在這個網站(My Cython code parses into C, but doesn't compile. First time trying to use external C code)
解決的辦法是下面添加到我的setup.py文件:
import numpy
...
Extension(..., include_dirs = [numpy.get_include(), ... ])
W00t!
寫
import scipy.stats
不
cimport scipy.stats
我接着說:擴展(include_dirs = [numpy.get_include()])'來的setup.py和虛無縹緲......說'Extension'是未定義。你需要做更多嗎? – bordeo 2016-04-03 02:37:32
nvm。找到了。 http://docs.cython.org/src/reference/compilation.html – bordeo 2016-04-03 02:42:45