Внедрение Scipy в C

Это очень простой вопрос, но он меня озадачивает.

Я пытаюсь встроить некоторые scipy-процедуры в c-программу. Тем не менее, я не могу успешно завершить начальный шаг импорта любых scipy модулей.

Я могу импортировать верхний уровень scipy, не получая нулевое возвращаемое значение, поэтому я уверен, что установка не проблема …

PyObject *pckg_name, *pckg; pckg_name = PyString_FromString("scipy"); pckg = PyImport_Import(pckg_name); if (!pckg) { printf("Error importing python module %s.\n"); return; } 

… но я не могу добраться до более низкого уровня. Я пробовал всевозможные комбинации с PyImport_Import и PyImport_ImportModule, например, импортируя «scipy.stats» в качестве шага 1 или импортируя статистику как шаг 2 после импорта scipy, но ничего не работает.

Я могу импортировать и использовать функции из «случайного» модуля, поэтому я не думаю, что есть проблема с моей базовой установкой Python. Я знаю, что мне не хватает чего-то очевидного здесь, но я не могу понять, что это такое.

One Solution collect form web for “Внедрение Scipy в C”

Для чего это стоит, это работает для меня:

try_scipy.c

 #include <Python.h> #include <stdio.h> int main(int argc, char *argv[]) { PyObject *pckg_name; PyObject *pckg; Py_Initialize(); pckg_name = PyString_FromString("scipy.stats"); pckg = PyImport_Import(pckg_name); if (!pckg) { printf("fail\n"); } else { printf("got it!\n"); Py_DECREF(pckg); } Py_DECREF(pckg_name); Py_Finalize(); return EXIT_SUCCESS; } 

Скомпилировать и запустить:

 $ gcc try_scipy.c `python-config --cflags --ldflags` -o try_scipy $ ./try_scipy got it! 
  • Построение дендрограммы в ошибке Scipy для большого набора данных
  • Для цикла кажется более быстрым, чем интерполяция NumPy / SciPy 3D
  • Установите гауссовую функцию
  • Как рассчитать доверительный интервал 99% для наклона в модели линейной регрессии в python?
  • Режим / Медиана / Средство для трехмерной матрицы numpy
  • Как установить SciPy на 64-битную Windows?
  • argrelextrema и плоские экстремумы
  • matplotlib.mlab.griddata очень медленный и возвращает массив nan при вводе действительных данных
  • Python - лучший язык программирования в мире.