关于windos10环境下编译python3版pjsua库的问题

环境:
windows10_x64
python3.9_x64
pjsua-2.10
vs2015
pjsua编译参考这里: https://www.jb51.net/article/225189.htm
pjsua默认绑定的python版本是python 2.4,使用起来有诸多限制,希望可以使用python3调用pjsua的库实现软电话的基础功能。
编译python_pjsua 【关于windos10环境下编译python3版pjsua库的问题】1、替换代码
官方给的代码不支持python3,需要使用第三方代码:
https://github.com/mgwilliams/python3-pjsip.git
下载之后,替换该目录 pjsip-apps/src/python
2、修改配置
为防止后续报错,打开 pjsip-apps\src\python\_pjsua.def文件,将init_pjsua改为PyInit__pjsua
3、添加python3编译依赖
打开项目选择,python_pjsua 右键-属性
添加include路径
关于windos10环境下编译python3版pjsua库的问题
文章图片

添加lib依赖
关于windos10环境下编译python3版pjsua库的问题
文章图片

修改依赖项 python24.lib 为python39.lib
关于windos10环境下编译python3版pjsua库的问题
文章图片

4、如果报错LNK1112: 模块计算机类型“x64”与目标计算机类型“x86”冲突
修改链接器里面的Target Machine为X64,需要注意同步修改依赖。
关于windos10环境下编译python3版pjsua库的问题
文章图片

5、添加额外lib库,防止链接出错
文件 : _pjsua.c
添加代码:
#pragma comment(lib, "msvcrtd.lib")
#pragma comment(lib, "vcruntimed.lib")
#pragma comment(lib, "ucrtd.lib")
#pragma comment(lib, "ole32.lib")
6、执行编译
成功后再pjsip-apps/lib目录下有_pjsua.pyd文件,将其与pjsip-apps/src/python/pjsua.py文件一起放到python3.9 目录下/Lib/site-packages目录下
或者放在需要引用的目录里面
关于windos10环境下编译python3版pjsua库的问题
文章图片

7、测试
关于windos10环境下编译python3版pjsua库的问题
文章图片
关于windos10环境下编译python3版pjsua库的问题
文章图片

关于windos10环境下编译python3版pjsua库的问题
文章图片

8、相关资源
python3.9_x64
python3-pjsua.7z
源码及预编译文件
关于windos10环境下编译python3版pjsua库的问题
文章图片

关于windos10环境下编译python3版pjsua库的问题
文章图片

本文涉及完整代码及资源下载地址:
http://xiazai.jb51.net/202110/yuanma/python_jb51.rar
到此这篇关于windos10环境下编译python3版pjsua库的文章就介绍到这了,更多相关python3编译pjsua库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读