2012-07-27 76 views
4

Cython教程展示了如何在Cython中使用Numpy的一个很好的例子。不过,我有一个使用scipy.stats包代码,并试图编译代码时,我的错误,如:(?)Python/Cython:在Cython中使用SciPy

dvi.pyx:7:8: 'scipy.stats.pxd' not found 

我担心SciPy的是不支持用Cython。有人可以评论Cython的scipy使用情况,还是指向某些资源/教程的方向? Thannks!

回答

8

于是我发现了用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!

+0

我接着说:扩展(include_dirs = [numpy.get_include()])'来的setup.py和虚无缥缈......说'Extension'是未定义。你需要做更多吗? – bordeo 2016-04-03 02:37:32

+0

nvm。找到了。 http://docs.cython.org/src/reference/compilation.html – bordeo 2016-04-03 02:42:45

1

import scipy.stats 

cimport scipy.stats