window7下python3 编译pjsua

前几天因为公司需要用python自动化测试模拟话机呼叫,找了半天,大部分都是基于pjsip的库。所以开始苦逼的编译安装pjsua之路。

先已经编译好python3.7 32位的_pjsua.pyd并且可以通过import pjsua导入

首先,需要准备的工具有visual studio 2019 community,pjproject

先安装visual studio2019。这步省略

然后下载pjsip,地址https://github.com/pjsip/pjproject

下载完成之后,解压到某个指定目录下,如D:\pythonProject\pjproject-2.10.tar

到pjlib/include/pj目录下,创建新的文件config_site.h

使用vs2019打开pjproject-vs14.sln

解决方案-右键-重定目标解决方案。因为是2015的项目,用2019打开会报错

重新打开项目

选择Release x64

右键-解决方案-生成解决方案。成功。

但重点是编译python_pjsua。但是官方给的代码是有问题的,不能兼容python3。所以需要去下载github上的代码

地址https://github.com/mgwilliams/python3-pjsip.git

下载之后,将原来pjsip-apps/src/python目录修改为python_bk,用该库替换,重命名为python

打开该目录下的_pjsua.def文件,将init_pjsua改为PyInit__pjsua

打开项目选择,python_pjsua右键-属性

c/c++常规-附加包含目录-选择新增-选择python3安装路径下的include目录

链接器-常规-附加库目录-选择新增-选择python3安装目录下的libs目录

链接器-输入-附加依赖项-python24.lib改为python37.lib

如果报错LNK1112: 模块计算机类型“x64”与目标计算机类型“x86”冲突

一种解决方案是下载python3 32位解释器,然后修改Release win32,修改之前的安装目录的include和libs目录。重新生成。

 成功后再pjsip-apps/lib目录下有_pjsua.pyd文件,将其与pjsip-apps/src/python/pjsua.py文件一起放到python3.7 32位目录下/Lib/site-packages目录下

打开解释器,import pjsua如果成功表示已经完成。

posted @ 2020-04-21 23:07  菲菲菲菲菲常新的新手  阅读(824)  评论(0编辑  收藏  举报