我有一个C ++模块,我用SWIG包装,使用动态链接。由于python处理导入函数范围的方式,我必须在导入后直接运行命令dl.open(library, dl.RLTD_NOW, dl.RTLD_GLOBAL)
。这是为了确保C ++库函数可供其导入的其他库使用。
当然这意味着为了导入模块需要三行而不是一行。然而,其他线是不变的,并且不依赖于任何东西。那是我想转换的行:
import dl
import module
dl.open(library, dl.RTLD_NOW, dl.RTLD_GLOBAL)
简单地说:
import module
我已经尝试查看SWIG文档,了解如何在导入模块时运行代码,但我找不到任何东西。这可能吗?
感谢。
答案 0 :(得分:2)
尝试包装模块。将您的C ++代码构建到“私有”模块中,并将其命名为module_
或其他内容,以明确您不应导入它。然后,在module.py
(包装器模块)中:
import dl
from module_ import *
dl.open(library, dl.RTLD_NOW, dl.RTLD_GLOBAL)