【发布时间】:2020-01-01 06:48:09
【问题描述】:
我有一些共享对象文件(.so 库)需要加载到我的 python 项目中,这些文件将在 Ubuntu 平台上运行。
目标是我有一些库已经被转换成 .so 文件,现在我需要将它们加载到我的 python 项目中。
谁能分享这个的详细步骤?
【问题讨论】:
我有一些共享对象文件(.so 库)需要加载到我的 python 项目中,这些文件将在 Ubuntu 平台上运行。
目标是我有一些库已经被转换成 .so 文件,现在我需要将它们加载到我的 python 项目中。
谁能分享这个的详细步骤?
【问题讨论】:
你可以使用ctypes,很简单。
假设您有一个 my-library.so 并导出了以下 C 函数:
void say_hello(char *name) {
printf("Hello, %s!\n", name);
}
您可以像这样加载库并从 Python 调用函数:
>>> from ctypes import cdll
>>> mylib = cdll.LoadLibrary('./my-library.so')
>>> mylib.say_hello("world")
Hello, world!
>>>
注意前导./ 很重要,否则LoadLibrary 将在默认库路径中查找,而不是当前文件夹。
更多信息请参考the documentation for ctypes。
【讨论】: