Cython 教程展示了如何将 Numpy 与 Cython 一起使用的一个很好的示例。但是,我有使用 scipy.stats 包的代码,并且在尝试编译代码时,出现以下错误:
dvi.pyx:7:8: 'scipy.stats.pxd' not found
我担心 Cython(?)不支持 scipy。有人可以评论在 Cython 中使用 scipy 或指出一些资源/教程的方向吗?谢谢!
Cython 教程展示了如何将 Numpy 与 Cython 一起使用的一个很好的示例。但是,我有使用 scipy.stats 包的代码,并且在尝试编译代码时,出现以下错误:
dvi.pyx:7:8: 'scipy.stats.pxd' not found
我担心 Cython(?)不支持 scipy。有人可以评论在 Cython 中使用 scipy 或指出一些资源/教程的方向吗?谢谢!
所以我在 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
这让我有信心使用 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
似乎存在路径或目录问题。事实上我是对的,并且在这个网站上有一个帖子(我的 Cython 代码解析成 C,但没有编译。第一次尝试使用外部 C 代码)
解决方案是将以下内容添加到我的 setup.py 文件中:
import numpy
...
Extension(..., include_dirs = [numpy.get_include(), ... ] )
哇!
写
import scipy.stats
不是
cimport scipy.stats