SWIG TypeError构建Python模块

时间:2018-02-02 05:11:12

标签: python typeerror swig

我正在尝试使用SWIG创建一个python模块。但是,我收到了这个错误:

TypeError: in method 'Foo', argument 1 of type 'std::vector< std::vector< std::string,std::allocator< std::string > >,std::allocator< std::vector< std::string,std::allocator< std::string > > > > &'

我试过把&#34; std ::&#34;在矢量类型的前面,我尝试过使用命名空间std;&#34;,并且我尝试过包含&#34; std_vector.i。&#34;我没有解决这个问题的运气。

如何摆脱这个错误?

myModule.i

%module myModule

%{
 #include "myModule.h"

/* Function declarations */
    void foo(std::vector <std::vector <std::string> > &input, Model *myModel,std::vector <std::vector <std::vector <double> > > &output)
%}
using namespace std;
%include "std_string.i"
%include "std_vector.i"

// Instantiate templates used

 %template(VecInt) vector<int>;
 %template(VecVecInt) std::vector<std::vector<int> >;
 %template(VecDouble) std::vector<double>;
 %template(VecVecDouble) std::vector<std::vector<double> >;
 %template(VecString) std::vector<std::string>;
 %template(VecVecString) std::vector<std::vector<std::string> >;
 %template(VecConstChar) std::vector<const char*>;


#include "myModule.h"

    void foo(std::vector <std::vector <std::string> > &input, Model *myModel,std::vector <std::vector <std::vector <double> > > &output)

Foo功能:

  void foo(vector <vector <string> > &input, Model *myModel,vector <vector <vector <double> > > &output)

0 个答案:

没有答案