freeswitch使用python3

freeswitch使用python3

一、python安装

下载python

wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz

创建安装目录

mkdir -p /usr/local/python3

解压

tar -zxvf Python-3.7.6.tgz

编译安装
首先需要gcc环境和zlib库为了方向键等不出现乱码还需要 readline-devel 包

yum -y install gcc
yum -y install zlib*
yum install readline-devel

其次 配置

cd Python-3.7.6
./configure --prefix=/usr/local/python3  --enable-shared CFLAGS=-fPIC --enable-optimizations

编译安装

make && make install

建立软链接

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

测试安装
查看版本

[root@www local]# python3 --version
Python 3.7.5
[root@www local]#

二、安装mod_python

通过–with-python3指定python3的目录

./configure --with-python3=/usr/bin/python3
make && make install

出现错误
/usr/local/lib/libpython3.7m.a(call.o): relocation R_X86_64_32 against `.rodata.str1.8’ can not be used when making a shared object; recompile with -fPIC

大意就是目前这个python3.7的库是个静态库,不是所需要的动态库,需要重新编译一遍python

再编译参数之后添加参数--enable-shared CFLAGS=-fPIC

	./configure --prefix=/usr/local/python3  --enable-shared CFLAGS=-fPIC --enable-optimizations
	make clean
	make && sudo make install

使用freeswitch加载python3模块

load mod_python3

问题解决

  1. Could not find or use python3 distutils module: /usr/local/python3/bin/python3.7: error while loading shared libraries: libpython3.7m.so.1.0:

    到python3的安装目录下找到libpython3.7m.so.1.0文件复制到对应的位置

        [root@www python3.7]#  cp libpython3.7m.so.1.0 /usr/local/lib64/
        [root@www python3.7]#  cp libpython3.7m.so.1.0 /usr/lib/
        [root@www python3.7]#  cp libpython3.7m.so.1.0 /usr/lib64/
    

python脚本测试

在freeswitch存放脚本的文件夹下创建python脚本test.py

from freeswitch import *
 
def fsapi(session, stream, env, args):
    stream.write("hello")

在freeswitch控制台中执行python脚本,不用添加后缀

python test

输出

freeswitch@ROOT> python test
hello
2022-05-25 15:20:56.189437 66.07% [NOTICE] mod_python3.c:216 Invoking py module: test
2022-05-25 15:20:56.209433 66.07% [DEBUG] mod_python3.c:308 Call python script 
2022-05-25 15:20:56.209433 66.07% [DEBUG] mod_python3.c:310 Finished calling python script 
freeswitch@ROOT>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值