扩展和嵌入Python解释器¶
本篇介绍了如何用c或c++来写模块,用来为Python解释器增加新功能模块。新增模块不仅可以定义新函数,还可以定义新对象类型和对象的方法.该文档还描述了如何将Python解释器嵌入到另一个应用程序中,以用作扩展语言。最后,它展示了如何编译和链接扩展模块,以便如果底层操作系统支持此功能,它们可以动态地(在运行时)加载到解释器中。
本文假设有关Python的基本知识。有关语言的非正式介绍,请参阅The Python Tutorial。The Python Language Reference给出了语言的更正式定义。The Python Standard Library记录现有的对象类型,函数和模块(内建和用Python编写),使语言具有广泛的应用范围。
有关整个Python / C API的详细说明,请参阅单独的Python/C API Reference Manual。
推荐的第三方工具¶
本指南仅介绍了此版本CPython中一个用于创建扩展的基本工具的部分。像Cython,cffi
,SWIG和Numba等第三方工具提供了更简单和更智慧的方法来创建Python的C和C ++扩展。
也可以看看
- Python包装用户指南:二进制扩展
- Python包装用户指南不仅涵盖了几个简化二进制扩展的可用工具,而且还讨论了首先创建扩展模块的各种原因。
不使用第三方工具创建扩展¶
本指南的这一部分包括在没有第三方工具的帮助的情况下创建C和C ++扩展。它主要用于这些工具的创建者,而不是一种推荐的方式来创建您自己的C扩展。
Embedding the CPython runtime in a larger application¶
有时,不是创建在Python解释器内部运行的扩展作为主应用程序,而是希望将CPython运行时嵌入更大的应用程序中。本节包括成功完成的一些细节。