7

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

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

我担心 Cython(?)不支持 scipy。有人可以评论在 Cython 中使用 scipy 或指出一些资源/教程的方向吗?谢谢!

4

2 回答 2

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

这让我有信心使用 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(), ... ] )

哇!

于 2012-07-27T19:30:08.590 回答
2

import scipy.stats

不是

cimport scipy.stats
于 2012-07-30T21:18:04.910 回答