windos10環境下編譯python3版pjsua庫

環境:
windows10_x64
python3.9_x64
pjsua-2.10
vs2015

pjsua編譯參考這裡: //www.cnblogs.com/MikeZhang/p/pjsip20210116.html

pjsua默認綁定的python版本是python 2.4,使用起來有諸多限制,希望可以使用python3調用pjsua的庫實現軟電話的基礎功能。

編譯python_pjsua

1、替換代碼
官方給的代碼不支持python3,需要使用第三方代碼:
//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路徑

 

添加lib依賴

 

 

 

修改依賴項 python24.lib 為python39.lib

 

 

 

4、如果報錯LNK1112: 模塊計算機類型「x64」與目標計算機類型「x86」衝突

修改鏈接器裏面的Target Machine為X64,需要注意同步修改依賴。

 

 

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目錄下
或者放在需要引用的目錄裏面

 

 

 

 

7、測試

 

 

 

 8、相關資源

 python3.9_x64

python3-pjsua.7z

源碼及預編譯文件

 

 

本文涉及完整代碼及資源下載地址:

//pan.baidu.com/s/1n3xcEIZYtPQt9cv70Loffw

可關注微信公眾號(聊聊博文)後回復 2021101001 獲得提取碼。 

Tags: