【问题标题】:SWIG + SCIPY = Import Error on PyArray_TYPESWIG + SCIPY = PyArray_TYPE 上的导入错误
【发布时间】:2010-10-12 21:08:42
【问题描述】:

大家好,我为一些 C 代码编写了一个 swig 包装器。我试图弥合 scipy 数组和 C 数组之间的差距,我知道这很混乱。经过干净的编译(嗯......不包括一些警告......)我在加载 python-swig-c 模块时遇到了这个问题:

undefined symbol: PyArray_TYPE

我在下面添加了我的 swig 接口文件 - 我使用了 swig-pythonc 教程来编写这些东西:

%module pycimpl

%{
    #define SWIG_FILE_WITH_INIT
    #include "cimpl.h"
%}

%include "numpy.i"
%init %{
    import_array();
%}

%include "typemaps.i"

%apply (double* INPLACE_ARRAY1, int DIM1, int* INPLACE_ARRAY2, int DIM2, int* INPLACE_ARRAY3, int DIM3, double* INPLACE_ARRAY4, int DIM4, double* OUTPUT) { (double a[], int adim, int rowidx[], int rowidxdim, int colstr[], int colstrdim, double x[], int xdim, double* zeta) }

double cimpl(double a[], int adim, int ridx[], int ridxdim, int cstr[], int cstrdim, double x[], int xdim, double* zeta);

%include "cimpl.h"

任何帮助将不胜感激!

干杯!

ct

【问题讨论】:

    标签: python swig scipy


    【解决方案1】:

    为什么不使用 ctypes 或 pyrex/cython 来代替 SWIG? (见Python: SWIG vs ctypes

    【讨论】:

    • 过去我在 ctypes 方面遇到过一些跨平台问题。当时,我还没有听说过 cython,它还处于起步阶段。 Pyrex 似乎解决了与 SWIG 相同的问题(我只是更熟悉 SWIG),所以我选择坚持使用我已经熟悉的东西,而 SWIG 已经在这个街区出现了更长的时间。
    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多