如何为C代码开发python包装器?

时间:2010-11-03 12:57:30

标签: python

给定一个C代码,有没有办法可以使用其他语言如python来执行C代码。我想说的是,有很多模块是使用语言构建的,但也提供了通过不同语言的访问,有什么办法可以做到吗?

2 个答案:

答案 0 :(得分:2)

当然,它在Python世界中被称为“扩展”。 official documentation is here。{{3}}。摘录摘录:

  

本文档介绍了如何编写   用C或C ++扩展的模块   带有新模块的Python解释器。   这些模块可以定义新功能   还有新的对象类型和它们   方法。该文件还描述了   如何嵌入Python解释器   另一个应用程序,用作   扩展语言。最后,它表明   如何编译和链接扩展   模块,以便它们可以加载   动态地(在运行时)进入   翻译,如果潜在的   操作系统支持这一点   特征

Python更简单的方法是使用ctypes标准包在DLL中运行代码。

答案 1 :(得分:1)

很多方面。通常,这通常称为Foreign Function Interface。维基百科页面上有关Python的内容:

* The major dynamic languages, such as Python, Perl, Tcl, and Ruby,
     

所有提供对本机代码的轻松访问   用C / C ++(或任何其他语言)编写   语言服从C / C ++调用   约定)。             o Python还提供了Ctypes模块2   可以从共享加载C函数   库和DLL即时和   翻译简单的数据类型   自动在Python和C之间   语义。例如:

 import ctypes libc = ctypes.CDLL('/lib/libc.so.6' )   # under Linux/Unix
 t = libc.time(None) # equivalent C code: t = time(NULL)
 print t

支持多种语言的流行选择是SWIG