前几天因为公司需要用python自动化测试模拟话机呼叫,找了半天,大部分都是基于pjsip的库。所以开始苦逼的编译安装pjsua之路。
先已经编译好python3.7 32位的_pjsua.pyd并且可以通过import pjsua导入
首先,需要准备的工具有visual studio 2019 community,pjproject
先安装visual studio2019。这步省略
然后下载pjsip,地址https://github.com/pjsip/pjproject
下载完成之后,解压到某个指定目录下,如D:pythonProjectpjproject-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如果成功表示已经完成。