当前位置:   article > 正文

freeswitch启用mod_python3_freeswitch 编译带mod_python模块的包

freeswitch 编译带mod_python模块的包

一直没有启用mod_python3模块,今天来配置试一下。记录配置的过程。

1.yum  install python3-devel

    如果不执行这个命令,可能会报错:

    configure: error: Your python3 lacks threads support, can not build mod_python3

    或者就是找不到python的头文件。

2.安装python3,因为目前系统里用的是python2,索性就升级到python3吧。

    下面的版本你可以自己选择。

  1. wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tar.xz
  2. 解压
  3. cd Python-3.*
  4. sudo ./configure --prefix=/usr/local/python3.10 --enable-shared CFLAGS=-fPIC
  5. sudo make
  6. sudo make install

   3.编译mod_python3模块。

      首先,进入到freeswitch源代码的根目录下,执行:

    ./configure --with-python3=/usr/bin/python3.10 

    执行完后,会自动生成mod_python3模块下的相匹配的makefile文件。

   下面有2种方法:

   (1)在源码目录下执行:make mod_python3-install

   (2)在freeswitch/src/mod/languages/mod_python3 目录下,执行:

             make

             make install

这2种方法,最后都会生成mod_python3文件。

4.加载模块:

   在fs_cli的控制台执行:load  mod_python3.

5.加载完毕,开始测试:

   为了省事,不自己写测试脚本了,就用源码里 自带的python_example.py 脚本。

  把python_example.py复制到/usr/local/freeswitch/scripts 目录下,

然后在控制台执行:python python_example  (注意,不要带.py后缀)

此时报错:

  1. mod_python3.c:255 Error importing module
  2. [ERR] mod_python3.c:168 Python Error by calling script "test": <class 'ModuleNotFoundError'>
  3. Message: No module named 'freeswitch'
  4. Exception: NoneType: None

经上网搜索,发现原来是python的默认目录不是scripts,而是要放到python3的某一个安装目录下。(这块有疑问,如果有不对的地方,请高人指点,谢谢)

在我的环境下,就是:/usr/lib/python3/site-packages

这个目录的来源是/usr/local/python3.10/lib/python3.10/site-packages

也就是刚才--prefix指定的安装目录

这个目录下,存放你自己的python脚本,并确保存在freeswitch.py 文件。

并设置一个python的运行目录:

export PYTHONPATH=/usr/lib/python3/site-packages

不然还是无法加载:No module named 'freeswitch'

6.然后重启freeswitch主程序,再次执行:python python_example 就成功了,执行结果如下:

  1. ---python python_example
  2. w00t!
  3. Event-Name: API
  4. Core-UUID: dd19aae8-8fe6-11ee-8e74-e19207ef332f
  5. FreeSWITCH-Hostname: xxx
  6. FreeSWITCH-Switchname: xxx
  7. FreeSWITCH-IPv4: xxx
  8. FreeSWITCH-IPv6: %3A%3A1
  9. Event-Date-Local: 2023-12-01%2009%3A35%3A00
  10. Event-Date-GMT: Fri,%2001%20Dec%202023%2001%3A35%3A00%20GMT
  11. Event-Date-Timestamp: xxx
  12. Event-Calling-File: switch_loadable_module.c
  13. Event-Calling-Function: switch_api_execute
  14. Event-Calling-Line-Number: 2949
  15. Event-Sequence: 1132
  16. API-Command: python
  17. API-Command-Argument: python_example
  18. [NOTICE] mod_python3.c:216 Invoking py module: python_example
  19. [DEBUG] mod_python3.c:308 Call python script
  20. [DEBUG] mod_python3.c:310 Finished calling python script

7.结束了,end

   长风破浪会有时,直挂云帆济沧海!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/148646
推荐阅读
相关标签
  

闽ICP备14008679号