【问题标题】:Building a python interface for a *.so为 *.so 构建 python 接口
【发布时间】:2017-02-01 05:37:25
【问题描述】:

我想使用C 库,从中可以使用共享对象和头文件。

由于ctypesCython 的文档非常稀缺,而且关于它们的教程用于不同的用途,我需要一些帮助。

所以,我不知道从哪里开始,对于像我这样的 Python 初学者来说,哪种工具是最简单的解决方案。

【问题讨论】:

  • 这个答案有点帮助,但提供的答案是 7 岁,所以可能有点过时了
  • 图书馆有多大? ctypes 相当容易使用并且是内置的,但如果你必须包装许多函数,它可能会有点重复。
  • 图书馆很大。但我终于设法使用 ctypes 导入和访问它。

标签: python shared-libraries cython ctypes


【解决方案1】:

我终于设法用ctypes 导入了库。 Cython 不适合我,而且需要的不同文件似乎很复杂。

在收到类似undefined symbol: inflate 的错误后,通过从系统库中导入所需的 pcap 库,访问确实成功了。我只是不知道它是必需的。我发现它在哪里:find /usr/lib/ -name libpcap*

from ctypes import cdll

def main():
    libpcap = cdll.LoadLibrary('path/to/libpcap.so')
    lib = cdll.LoadLibrary('path/to/lib.so')
    lib.function_from_lib

if __name__ == "__main__":
    main()

所以我希望,如果有人遇到这个问题并且来自谷歌,这里有一个可能会有所帮助的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-17
    • 2015-10-19
    • 2020-02-01
    • 2016-12-20
    • 2021-01-31
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多