找不到导入的 swig 包装模块的函数
Function from imported swig wrapped module not found
我想从 SWIG-wrapped C++ 类 创建几个 Python 模块。
问题是模块不能相互导入。
这里是A_module.i文件
%module A_module
%inline
%{
void foo(){}
%}
编译没有问题,因此在 .py 脚本中我可以这样做:
import A_module
A_module.foo()
现在我想创建 B_module 导入 A_module 并调用 foo。
这是B_module.i文件
%module B_module
%import A_module.i
当我在 .py 中做这样的事情时
import B_module
B_module.foo()
它给出一个错误 syaing module has no attribute foo.
我找到的解决方案是使用 %include 而不是 import,但它会在两个模块中创建相同的 foo 函数,我想避免这种情况
那个 .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
%}
我想从 SWIG-wrapped C++ 类 创建几个 Python 模块。 问题是模块不能相互导入。
这里是A_module.i文件
%module A_module
%inline
%{
void foo(){}
%}
编译没有问题,因此在 .py 脚本中我可以这样做:
import A_module
A_module.foo()
现在我想创建 B_module 导入 A_module 并调用 foo。 这是B_module.i文件
%module B_module
%import A_module.i
当我在 .py 中做这样的事情时
import B_module
B_module.foo()
它给出一个错误 syaing module has no attribute foo.
我找到的解决方案是使用 %include 而不是 import,但它会在两个模块中创建相同的 foo 函数,我想避免这种情况
那个 .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
%}