gpt4 book ai didi

python - SWIG - 在导入时运行 python 代码

转载 作者:行者123 更新时间:2023-12-01 06:15:09 25 4
gpt4 key购买 nike

我有一个 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 文档,了解如何使其在导入模块时运行代码,但我找不到任何内容。这可以做到吗?

谢谢。

最佳答案

尝试包装您的模块。将您的 C++ 代码构建到“私有(private)”模块中,并将其命名为 module_ 或其他名称,以明确您不应导入它。然后,在 module.py (包装器模块)中:

import dl
from module_ import *
dl.open(library, dl.RTLD_NOW, dl.RTLD_GLOBAL)

关于python - SWIG - 在导入时运行 python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3650059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com