2015-06-02 33 views
0

我們有一套由swig for python包裝的C++類。當導入這些類中的蟒蛇之一,我們得到以下錯誤信息:當導入swig生成的模塊時,Python抱怨缺少刪除方法

File ".../myobjects.py", line 176, in <module> 
class RT(_object): 
File ".../myobjects.py", line 187, in RT 
\__swig_destroy__ = _myobjects.delete_RT 
AttributeError: 'module' object has no attribute 'delete_RT' 

myobjects.py痛飲生成RT的代碼如下所示:

class RT(_object): 
    __swig_setmethods__ = {} 
    __setattr__ = lambda self, name, value: _swig_setattr(self, RT, name, value) 
    __swig_getmethods__ = {} 
    __getattr__ = lambda self, name: _swig_getattr(self, RT, name) 
    __repr__ = _swig_repr 
    def __init__(self, *args): 
     this = _myobjects.new_RT(*args) 
     try: self.this.append(this) 
     except: self.this = this 
    def getName(self): return _myobjects.RT_getName(self) 
    __swig_destroy__ = _myobjects.delete_RT 
    __del__ = lambda self : None; 

而且CXX文件從_myobjects.so被創建有以下幾行:

SWIGINTERN PyObject *_wrap_delete_RT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { 
    PyObject *resultobj = 0; 
    RT *arg1 = (RT *) 0 ; 
... 

總之,所有出現的順序,但我們仍然得到python錯誤。

任何想法的人?

感謝,

託默

回答

0

嗯,不知道爲什麼會這樣,只是這前述一個在CXX文件中的類被列入由兩個I文件。刪除一個包含解決了問題。