将pjsip的python扩展从python2.4升级到python3.2

本文详细介绍了如何将Pjsip的Python扩展从Python2.4升级到Python3.2。涉及替换_pjsua.h和_pjsua.c中的函数,修改_pjsua.c中init_pjsua函数,更新setup-vc.py脚本,以及调整pjsua.py。完成这些步骤后,可以成功生成适用于Python3.2的库文件。
摘要由CSDN通过智能技术生成

Pjsip 1.8.5中python部分是基于python2.4的,这个有点跟不上时代了。

我的python环境是python3.2的。

修改步骤:

一 替换_pjsua.h和_pjsua.c中的函数

原来pjsip工程中python_pjsua的代码中大量试用了python2.*中stringobject.*的函数。这个string在python3以后已经完全被unicode string取代了,stringobject.h也被去掉了。所以需要将原有对python sting 的调用都替换为python Unicode string。Intobject也被longobject取代。

intobject -> longobject

stringobject -> unicodeobject

1. PyString_Size –> PyUnicode_GetSize

2. PyString_AsString -> PyUnicode_AsString

3. PyInt_AsLong -> PyLong_AsLong

4. PyString_Check -> PyUnicode_Check

5. PyString_AsString -> _PyUnicode_AsString

去掉ob_type相关行。

二 修改_pjsua.c文件中init_pjsua函数

1. 将原有:

/*

* Mapping C structs from and to Python objects & initializing object

*/

DL_EXPORT(void)

init_pjsua(void)

{

PyObject* m = NULL;

替换为:

/*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值