如何在Python中使用librt函数?

我正在尝试使用第三方.so,P4API.so,它调用librt.so中定义的clock_gettime,并希望脚本的用户不必设置LD_PRELOAD。 所以在init .py文件中,我有:

import ctypes librt = ctypes.cdll.LoadLibrary('librt.so') 

这很好的加载库,但运行脚本仍然发出:

 ImportError: /path/to/P4API.so: undefined symbol: clock_gettime 

我试过了:

 __builtins__['clock_gettime'] = librt.clock_gettime 

但是这也行不通。

我怎样才能让P4API.so识别加载的librt?

你需要加载它

  ctypes.CDLL('librt.so', mode=ctypes.RTLD_GLOBAL) 

以便使其他图书馆可以使用。