Python如何调用C库?例如Tensorflow,我相信它主要是用C语言编写的,但可以从Python中使用。我想在自己的(解释性)编程语言中实现类似的功能(使用Go编写,但我认为这将是一个类似的过程)。
当Python程序调用C函数时会发生什么?我考虑过RPC或DLL,但两者都不太可能。
Python如何调用C库?例如Tensorflow,我相信它主要是用C语言编写的,但可以从Python中使用。我想在自己的(解释性)编程语言中实现类似的功能(使用Go编写,但我认为这将是一个类似的过程)。
当Python程序调用C函数时会发生什么?我考虑过RPC或DLL,但两者都不太可能。
ctypes
模块加载共享库并从中调用函数相当简单,您可以在此处找到许多示例:https://docs.python.org/3/library/ctypes.html
将C代码打包为二进制Python模块需要大量模板代码和对细节的注意,例如引用计数、空指针等,并且在此处进行了说明:https://docs.python.org/2/extending/extending.html
有几个库可以自动化该过程并为您生成绑定代码。其中一个例子是boost.python
:https://www.boost.org/doc/libs/1_65_0/libs/python/doc/html/tutorial/index.html