Python扩展与程序打包全攻略
1. Python扩展概述
Python扩展主要用于两个方面:利用现有(遗留)代码,或加速程序中的瓶颈部分。如果要从头编写代码,可先在Python中进行原型设计,找出瓶颈,必要时将其作为扩展提取出来。提前封装潜在的瓶颈部分可能会很有用。
对于Jython和IronPython,扩展它们相对容易。只需将扩展实现为底层实现的库(Jython使用Java,IronPython使用C#或其他.NET语言),代码即可在Python中使用。
扩展Python有多种工具,包括SWIG、Psyco、Pyrex、Weave、NumPy、ctypes、subprocess和modulator等,这些工具可用于将C代码融入Python程序、加速常见操作(如数值数组操作)或加速Python本身。
2. 使用Python/C API扩展Python
可以自己编写C代码,并将其作为共享库直接导入Python。为此,需要遵循Python/C API。每个函数需要处理的事项包括引用计数、提取参数和构建返回值。此外,还需要一定的代码使C库作为模块工作,包括列出模块中的函数并创建模块初始化函数。
以下是一个模块初始化函数的示例:
/* An initialization function for the module (the name is
significant): */
PyMODINIT_FUNC initpalindrome() {
Py_InitModule("palindrome", PalindromeMethods)
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



