我想从SWIG包装的C ++类中创建几个Python模块。 问题在于模块之间无法相互导入。
这是A_module.i文件
%module A_module
%inline
%{
void foo(){}
%}
它可以毫无问题地进行编译,因此在.py脚本中,我可以执行以下操作:
import A_module
A_module.foo()
现在,我想创建导入A_module并调用foo的B_module。 这是B_module.i文件
%module B_module
%import A_module.i
当我在.py中做类似的事情
import B_module
B_module.foo()
它给出了一个错误的syaing模块,该模块没有属性foo。
我发现的解决方案是使用%include代替import,但是它在两个模块中都创建了相同的foo函数,我想避免
答案 0 :(得分:0)
.i %import
是Python import
,因此您要寻找的foo
为B_module.A_module.foo
。您可以显式使用Python代码将A_module的一部分导入并复制到B_module。例如,具有B_module.i
:
%module B_module
%pythoncode %{
import A_module
foo = A_module.foo
del A_module
%}