python绑定,它如何工作?

发布于 2021-01-29 15:09:56

我正在探索python。我对python绑定感到好奇。任何人都可以解释一下,如何有可能从Python访问C库。

关注者
0
被浏览
76
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    有几种方法可以从Python调用用C编写的代码。

    首先,标准库中有ctypes模块。它允许您加载动态链接库(Windows.so上为DLL,Linux上为共享库)并直接从Python调用这些库中的函数。此类库通常用C编写。

    其次,对于CPython,有Python / C
    API。它可以以两种主要方式使用:

    动态链接库可以用C编写,这样CPython会将其视为模块(您可以将其导入Python程序中)。Python / C
    API允许库定义用C编写但仍可从Python调用的函数。该API非常强大,并提供了用于操纵所有Python数据类型和访问解释器内部的函数。

    使用C
    API的第二种方法是将Python嵌入用C编写的程序中。然后C程序可以创建用C编写的内置模块并公开C函数,就像在动态链接库方法中一样。该API还允许程序执行脚本,然后可以导入和使用内置模块。这可用于创建基于Python的插件系统。

    “绑定”既可以使用ctypes实现为纯Python库,也可以使用Python / C
    API实现为动态链接库。第二个选项有时与诸如SWIG之类的工具一起使用,它可以通过生成“样板代码”来简化任务,而Boost.Python可以在Python
    / C API之上提供C API,从而更轻松地与C 进行接口码。

    进一步阅读:外部功能接口



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看