【问题标题】:How to load .so libraryes in my Python app that is running on Ubuntu如何在我在 Ubuntu 上运行的 Python 应用程序中加载 .so 库
【发布时间】:2020-01-01 06:48:09
【问题描述】:

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

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

谁能分享这个的详细步骤?

【问题讨论】:

    标签: python c linux ubuntu .so


    【解决方案1】:

    你可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-11
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 2021-09-10
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多