首页 > 解决方案 > 如何在我在 Ubuntu 上运行的 Python 应用程序中加载 .so 库

问题描述

我有一些共享对象文件(.so 库)需要加载到我的 python 项目中,这些项目将在 Ubuntu 平台上运行。

目标是我有一些已经转换为 .so 文件的库,现在我需要将它们加载到我的 python 项目中。

任何人都可以分享这个的详细步骤吗?

标签: pythonclinuxubuntu.so

解决方案


你可以使用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将查看默认库路径而不是当前文件夹。

有关详细信息,请参阅ctypes.


推荐阅读