导入python扩展模块加载已加载的共享库

时间:2015-10-21 11:58:39

标签: python shared-libraries dynamic-loading python-extensions

我收到了一个已经加载的共享库的意外加载。

我有一个二进制文件(test_bin),它应该加载一个共享库(libtest.so)。 另外,我有一个C python扩展模块(extension.so),它也加载了libtest.so

现在,当我使用嵌入式python解释器启动二进制文件并导入扩展模块时,由于库中的静态全局变量被初始化两次,我发生了很多错误。

我的问题是,在这种情况下,为什么在扩展导入期间加载libtest.so,即使它已经被二进制文件加载(已经用lsof确认了)

注意:二进制文件和python扩展使用的共享库的版本,名称和位置都相同(由ldd验证)

调用:

./test_bin
In [1]: from some.location import extension
    # errors due to double initialization

如果您需要任何其他信息,请与我们联系

0 个答案:

没有答案