linux 如何在Ubuntu上运行的Python应用程序中加载.so库yes

monwx1rj  于 2024-01-06  发布在  Linux
关注(0)|答案(1)|浏览(130)

我有一些共享对象文件(.so libs),我需要加载到我的Python项目中,该项目将在Ubuntu平台上运行。
目标是我有一些已经转换成.so文件的库,现在我需要将它们加载到我的python项目中。
有谁能分享一下具体的步骤吗?

cnjp1d6j

cnjp1d6j1#

你可以用ctypes来实现,这很简单。
假设你有一个my-library.so,导出了以下C函数:

void say_hello(char *name) {
    printf("Hello, %s!\n", name);
}

字符串
你可以加载库并像这样从Python调用函数:

>>> from ctypes import cdll, c_char_p
>>> mylib = cdll.LoadLibrary('./my-library.so')
>>> mylib.say_hello.argtypes = [c_char_p]
>>> mylib.say_hello(b"world")
Hello, world!
>>>


请注意,前面的./很重要,否则LoadLibrary将在默认库路径中查找,而不是当前文件夹。
更多信息请参考ctypes的文档。

相关问题