关于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

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路径

添加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

源码及预编译文件

本文涉及完整代码及资源下载地址:

http://xiazai.jb51.net/202110/yuanma/python_jb51.rar

到此这篇关于windos10环境下编译python3版pjsua库的文章就介绍到这了,更多相关python3编译pjsua库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-10-11

安装python3.7编译器后如何正确安装opnecv的方法详解

1.测试python是否安装成功 在cmd界面中输入如下命令,如图所示: 一个是python命令 另一个是pip命令 记住不要在python环境下输入pip命令,否则出现如下情况,以免对后续安装opencv走弯路. 2.改变镜像源 如上述图所示,我所执行命令是在C:\Users\Administrator这个位置下进行的,于是我在C:\Users\Administrator\pip这个文件夹下新建一个pip.ini文件,在里面插入[global] index-url = https://pypi

Python3.7在anaconda里面使用IDLE编译器的步骤详解

安装好anaconda后发现一个问题:在anaconda里面,内置了两款编译器--Spyder和Jupyter,虽然都很好用,但是对于短小的代码来说还是有些不方便,这时候会很想念轻量级的IDLE编译器. 在anaconda中设置IDLE编译器: 快捷键"win+r"打开运行窗口 输入regedit,回车打开注册表 在注册表里面找到HKEY_CLASSES_ROOT,并在HKEY_CLASSES_ROOT下面找到.py项,没有则自己新建,新建过程如下: 新建的项命名为.py 把.py的值

win10 + anaconda3 + python3.6 安装tensorflow + keras的步骤详解

初入深度学习,就遇到了困难,一直安装不了tensorflow和keras库!!!真是让人着急!!!在经过无数次尝试,看了无数篇博客之后,终于安装上了.下面是具体的安装步骤. 首先,创建一个新的环境,这个环境适合python3.5使用: conda create -n py35 python=3.5 anaconda 如果在创建过程中出现如下错误 RemoveError: 'setuptools' is a dependency of conda and cannot be removed fro

python3中类的继承以及self和super的区别详解

python中类的继承: 子类继承父类,及子类拥有了父类的 属性 和 方法. python中类的初始化都是__init__().所以父类和子类的初始化方式都是__init__(),但是如果子类初始化时没有这个函数,那么它便调用父类的__init__():如果实现了这个函数,就会覆盖父类的初始化函数.如果继承父类的__init__(),就需要在子类中显示调用这个函数.实现如下: class Animal(object): def __init__(self): self.name = "我是父类&

Python3的高阶函数map,reduce,filter的示例详解

函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. 注意其中:map和filter返回一个惰性序列,可迭代对象,需要转化为list >>> a = 3.1415 >>> round(a,2) 3.14 >>> a_round = round >>> a_round(a,2) 3.14 >>> def func_devide(x, y, f): return f(x) - f(y

Ubuntu16.04安装python3.6.5步骤详解

下载python3.6.5安装包 1.   上传安装包.打开终端,利用命令cd 进入文件所在文件夹里 python@ubuntu:~/workspace$pwd /home/python/workspace 2.   解压文件 tar xfzPython-3.6.5.tgz 注意:这里使用xfz命令,而不建议使用-xvzf命令,因为其释放的文件夹需要root权限才可以更改或者删除. python@ubuntu:~/workspace$tar xfz Python-3.6.5.tgz python

python3.8下载及安装步骤详解

1.操作系统:Windows7 64bit Python版本:3.8下载地址:https://www.python.org/downloads/release/python-380/,选择下方的Windows x86-64 executable installer 2.安装步骤: 双击安装文件python-3.8.0-amd64.exe 勾选下方"Add Python 3.8 to PATH",并选择"Customize installation" 3.把Optio

Windows下Anaconda和PyCharm的安装与使用详解

1. Anaconda (下面都是一些口水话,可以稍微了解一下,不必过于斟酌��)   Anaconda是将Python和许多常用的package(Python开源包)打包直接来使用的Python发行版本,支持Windows.Linux和macOS系统,并有一个conda(开源包packages和虚拟环境environment的管理系统)强大的执行工具.   Anaconda的优点总结起来就八个字:省时省心.分析利器.   省时省心: Anaconda通过管理工具包.开发环境.Python版本,

Python3.8安装Pygame教程步骤详解

注:因为最近想用一下Python做一些简单小游戏的开发作为项目练手之用,而Pygame模块里面提供了大量的有用的方法和属性.今天我们就在之前安装过PyCharm的基础上,安装Pygame,下面是安装的步骤,希望能够帮到大家. 第一步 安装Python和pip 如果已安装,使用python --version 查看安装的Python版本 使用pip --version查看安装的pip版本 注:如果是没有安装pip,其下载链接是Download the file for your platform:

PyCharm配置anaconda环境的步骤详解

PyCharm是一款很好用很流行的python编辑器.Anaconda是专注于数据分析的Python发行版本,包含了conda.Python等190多个科学包及其依赖项.Anaconda通过管理工具包.开发环境.Python版本,大大简化了你的工作流程. 不仅可以方便地安装.更新.卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目.anaconda自带集成开发环境spyder.有些人不喜欢spyder的风格. 个人感觉其提示功能也不及PyCharm.如果能

Python入门Anaconda和Pycharm的安装和配置详解

子曰:"工欲善其事,必先利其器."学习Python就需要有编译Python程序的软件,一般情况下,我们选择在Python官网下载对应版本的Python然后用记事本编写,再在终端进行编译运行即可,但是对于我这样懒的小白,我喜欢装一些方便的软件来辅助我编写程序.在学习Java时,正常情况选择安装JDK然后配置环境变量后,用记事本编写程序再在终端编译运行即可,而我一般选择安装JDK+MyEclipse.将Python和Java进行类比的话,在Python中使用Python+Pycharm好比