Python/Cython: использование SciPy с Cython

Учебник Cython показывает хороший пример того, как использовать Numpy с Cython. Однако у меня есть код, который использует пакет scipy.stats, и при попытке скомпилировать код возникают такие ошибки, как:

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

Я боюсь, что scipy не поддерживается Cython (?). Может ли кто-нибудь прокомментировать использование scipy с Cython или указать мне направление некоторых ресурсов/учебников? Спасибо!


person Jason Strimpel    schedule 27.07.2012    source источник


Ответы (2)


Поэтому я нашел код в группе Google 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

Казалось, что была проблема с путем или каталогом. На самом деле я был прав, и на этом сайте есть сообщение (Мой код на Cython анализируется в C, но не компилируется. Впервые пытаюсь использовать внешний код C)

Решение состояло в том, чтобы добавить следующее в мой файл setup.py:

import numpy 
...
Extension(..., include_dirs = [numpy.get_include(), ... ] )

W00t!

person Jason Strimpel    schedule 27.07.2012
comment
Я добавил Extension(include_dirs = [numpy.get_include()]) в setup.py, и нада... говорит, что Extension не определено. Есть ли что-то еще, что вам нужно сделать? - person Chris; 03.04.2016

Напишите

import scipy.stats

нет

cimport scipy.stats
person pv.    schedule 30.07.2012