30、Python扩展与程序打包全攻略

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值