Python/Cython:将SciPy与Cython一起使用

Jas*_*pel 7 c python statistics cython scipy

Cython教程展示了如何将Numpy与Cython一起使用的一个很好的例子.但是,我有使用scipy.stats包的代码,在尝试编译代码时,我出现以下错误:

dvi.pyx:7:8: 'scipy.stats.pxd' not found
Run Code Online (Sandbox Code Playgroud)

我担心Cython(?)不支持scipy.有人可以用Cython评论scipy的使用,还是指向一些资源/教程的方向?Thannks!

Jas*_*pel 8

所以我在Cython Google Group上找到了代码(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
Run Code Online (Sandbox Code Playgroud)

这给了我信心,我可以用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
Run Code Online (Sandbox Code Playgroud)

这似乎是一个路径或目录问题.事实上我是正确的,这个网站上有一个帖子(我的Cython代码解析为C,但不编译.第一次尝试使用外部C代码)

解决方案是将以下内容添加到我的setup.py文件中:

import numpy 
...
Extension(..., include_dirs = [numpy.get_include(), ... ] )
Run Code Online (Sandbox Code Playgroud)

W00t!