首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

即使在python2中使用子进程,也无法使用asterisk AGI触发python 3代码

在Python 2中,使用子进程无法直接触发Python 3代码的原因是Python 2和Python 3之间存在着一些不兼容的语法和库的差异。Python 2和Python 3是两个不同的版本,它们在一些语法和库的使用上有所不同。

在Python 2中,可以使用subprocess模块创建子进程并执行外部命令,但是无法直接触发Python 3代码。要在Python 2中与Python 3代码进行交互,可以考虑使用进程间通信机制,如管道(pipe)或套接字(socket)来实现。

关于AGI(Asterisk Gateway Interface),它是一种用于与Asterisk电话系统进行交互的接口。AGI允许开发者使用自己喜欢的编程语言编写脚本,与Asterisk进行通信并处理电话呼叫。

对于这个问题,可以考虑以下解决方案:

  1. 在Python 2中,编写一个AGI脚本,该脚本通过与Asterisk进行交互,将需要触发的Python 3代码作为参数传递给一个独立的Python 3进程。Python 3进程可以使用subprocess模块启动,并执行传递的Python 3代码。
  2. 在Python 3中,编写一个独立的脚本,该脚本监听某个端口或管道,等待来自Python 2的请求。当收到请求时,执行相应的Python 3代码,并将结果返回给Python 2。

这样,通过在Python 2中调用AGI脚本,再通过进程间通信与Python 3进行交互,就可以间接地触发Python 3代码。

需要注意的是,以上解决方案仅为一种思路,具体实现方式可能因实际需求和环境而异。在实际应用中,还需要考虑安全性、性能等因素,并根据具体情况进行调整和优化。

腾讯云提供了一系列与云计算相关的产品和服务,包括云服务器、云数据库、云存储等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多详情,并查找适合您需求的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

asterisk服务器的sip、iax2继对接 By HKL,

撥出以及可以撥到 Asterisk(provider) 所有分機,但此模式的 Asterisk(end) 只是扮演 user,所以它的所有分機是與 Asterisk(provider) 是隔絕的,而且可以使用...當撥到對方(SIP_A)外線時 861234567, SIP_B 要撥 012861234567 2.多台asterisk使用SIP对接 http://www.nbao.net/post/2010/...N台asterisk下通过手动配置conf文件来实现对接是不可能的,因为用户会根据不同情况可能登陆不同的asterisk里,在这情况exten是无法固下来;这个时候就可能采asterisk的AMI和AGI...来动态处理,通过AMI来获取号码登陆的asterisk服务器地址,AGI根据号码所在asterisk做一个动态的TRUNK拔打就行。...2.iax2继 (1)asterisk iax互联 http://wenku.baidu.com/view/ed06e74ffe4733687e21aa1c.html 或 IP-PBX Asterisk

2.5K21

Python技术周刊:第 12 期

文章和教程 1、Python2 即将到期[1] 2020年1月1日,将是Python2退场的时间。这意味着,即使有人发现其中存在安全问题,不会得到维护和改进。你应该尽快升级到python3。...3、opencv使用进程提取特征[3] 使用OpenCV和Python的多进程处理来执行特征提取。 4、Pandas的60个使用技巧[4] 通过这个60多个技巧,节省你的时间和精力。...6、Python的多进程与线程:每个数据科学家都需要知道[6] 对Python进程和线程的深入介绍,不同的数据科学家问题集中使用哪些库。...: https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019 [3] opencv使用进程提取特征...[6] Python的多进程与线程:每个数据科学家都需要知道: https://blog.floydhub.com/multiprocessing-vs-threading-in-python-what-every-data-scientist-needs-to-know

46020
  • python进程和线程

    进程 进程是应用程序的执行实例,每一个运行的程序就是一个进程 线程 线程是进程的组成部分,一个进程可以拥有多个线程 当一个进程里只有一个线程时,叫作单线程。超过一个线程就叫作多线程。...创建线程 Python 主要通过两种方式来创建线程: 1.调用Thread类的构造器创建线程 使用 threading 模块 Thread 类的构造器创建线程。...=my_tuple) #启动线程 thread.start() 执行效果: Thread-1 python1 Thread-1 python2 Thread-1 python3 b.多线程 代码演示:...",\ "python2",\ "python3") #创建线程 mythread = my_Thread(my_tuple) #启动线程 mythread.start...一旦出现死锁,整个程序既不会发生任何异常,不会给出任何提示,只是所有线程都处于阻塞状态,无法继续。

    56710

    使用 python 快速搭建http服务 传输服务,下载服务器资源

    python2 使用 python -m SimpleHTTPServer 快速搭建http服务 python3 使用 python -m httpserver 快速搭建http服务 摘要: ...python -m SimpleHTTPServer 8000 & 在上述命令的最后加一个 & ,则该命令产生的进程在后台运行,不会影响当前终端的使用(我们只有一个bash的环境下)。...生成的新的进程为当前bash的进程,所以,当我们关闭当前bash时,相应的进程会被kill掉,这也不是我们想要的结果。...nohup python -m SimpleHTTPServer 8000 & 命令的开头加一个nohup,忽略所有的挂断信号,如果当前bash关闭,则当前进程会挂载到init进程下,成为其进程...,这样即使退出当前用户,其8000端口可以使用

    1.9K20

    解决shell脚本source etcprofile重载配置文件不生效的问题

    背景 最近在通过shell脚本Linux系统安装Java或Python的过程,遇到了shell脚本的“source /etc/profile”无法生效的问题,虽然可以执行完脚本后再次执行“source...以下为本次解决问题的实践记录: 1.示例 如下图所示,python_install.sh脚本安装完Python3、配置完环境变量后,使用source /etc/profile 命令来重新加载配置文件...python3命令) 2.原因 执行脚本时,脚本的命令是shell执行,shell只能继承父shell的环境变量,而无法修改父shell的环境变量,所做的修改仅对当前shell有效。...(点) 用于使shell读取指定的shell文件,并依次执行文件的所有语句 作用于当前shell进程 sh 执行指定shell脚本,shell执行脚本的语句 创建一个shell,新的namespace...python3 |xargs rm -frv # 删除python3所有残余文件,注意是卸载Python3,千万要带3,否则会把系统自带的Python2和yum(依赖Python2)卸载了 whereis

    8.6K31

    FreeSWITCH与Asterisk

    Asterisk的核心与某些模块有密切的联系。由于核心使用了一些模块的二进制代码,当它所依赖的某个模块出现问题,Asterisk就根本无法启动。...如果你想打一个电话,至少 Asterisk 1.2,除使用app_dial和res_features外你别无选择,这是因为建立一个呼叫的代码和逻辑实际上是app_dial,而不是核心里。...许多看起来是一模一样的操作,却使用不同的算法和杰然不同的方式来实现,这种重复代码随处可见。 这仅仅是我Asterisk遇到的最多的问题一个简要的概括。...我通过使用一个读、写锁,使得可以从一个散列表(哈希)查找信道而不必遍历一个线性链表,并且能绝对保证当一个外部线程引用到它时,一个信道无法被访问不能消失。...因此,你可以从你的拨号计划可以在你个性化的C程序执行同样的playback函数,甚至你可以自己写一个模块,手工打开文件,并使用模块的文件格式类服务而无需关注它的代码

    2.9K40

    《Effictive python》读书笔记2

    第15条了解如何在闭包里使用外面域的变量 代码里某条表达式中使用了变量,python解释器如何寻找?...当前函数的作用域; 2.任何外围作用域; 3.包含当前代码的模块的作用域(叫全局作用域, globle scope) 4.内置作用域(python内置的,包含len、str等函数的作用域) 找不到变量时抛...python3,nonlocal声明变量表示赋值时在上层作用域中查找该变量,不会延伸到全局作用域 python2,没有nolocal。可以用一个[]的下标,赋值来替代。...第20条 动态的默认参数可以用None和注释来描述 第21条 确保调用者使用关键字参数 Python3 *号后的参数,只能以关键字参数的形式赋值 python2 使用**kwarg,不定参数,字典形式。...map; 2.用pickle模块对数据进行序列化,将其变成二进制形式; 3.通过本地套接字,将序列化后的数据从主进程,发送到解释器所在进程; 4.进程,用pickle对二进制数据进行反序列化操作

    1.1K20

    Python 【基础面试题】

    像Linux进程那样,一个进程可以fork一个进程,并让这个子进程exec另外一个程序 Python,我们通过标准库的subprocess包来fork一个进程,并运行一个外部的程序。...print函数的使用python3必须加括号,python2加不加都行。 python2 的默认编码是ASCII,python3的默认编码是UTF-8。...python2有Unicode数据类型,python3没有,字符串都是Unicode格式的str数据类型。...用户输入不同,python3只有input()输出都是str和python2的raw_input()一样,而python2也有input(),输入字符串要带引号,数字输出相应的数字类型 python2...python2的除法不是浮点数则只返回商,python3除法返回值正常。 python3运行程序可以识别相同目录下普通文件夹的模块,python2只能识别文件夹标识后的包的模块。

    1.2K20

    60道Python常见面试题,做对80% Offer任你挑!

    5、谈下python的GIL GIL 是python的全局解释器锁,同一进程假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行...列举5个 1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi') Python2 既可以使用带小括号的方式,可以使用一个空格来分隔打印内容,比如 print '...hi' 2、python2 range(1,10)返回列表,python3返回迭代器,节约内存 3python2使用ascii编码,python使用utf-8编码 4、python2unicode...表示字符串序列,str表示字节序列 python3str表示字符串序列,byte表示字节序列 5、python2为正常显示中文,引入coding声明,python3不需要 6、python2...40、提高python运行效率的方法 1、使用生成器,因为可以节约大量内存; 2、循环代码优化,避免过多重复代码的执行; 3、核心模块用Cython PyPy等,提高效率; 4、多进程、多线程、协程;

    1.1K30

    python延时函数_python延时函数

    是由主进程执行的,当进程死亡,主进程回调函数。...使用cython、ctypes技术封装,即能实现了低延时的要求,又能兼容python语言的易用性。 经过严格测试,algoplus从策略触发交易信号到调用c++方法,延时只有40微秒左右。...threadlocal… (脚本工具,将 python2 转换为 python3 代码3. __future__模块。... python2使用 python3 的函数功能可参照如下代码:from __future__ import print_fuction2.3 python 函数2. 3.1 python 如何传递参数...举例:带眼镜装饰器是任意可调用的对象,本质就是函数装饰器python使用如此方便归因于python的函数能像普通的对象一样能作为参数传递给其他函数,可以被复制给其他变量,可以… python父线程和线程没有直接的管理关系

    7.4K20

    Python 企业级应用的两大硬伤

    这是因为 Cpython 解释器(Python 语言的主流解释器),有一个全局解释锁(Global Interpreter Lock),执行 Python 代码时,先要得到这个锁,意味着即使是多核...CPU 同一时段只可能有一个线程执行代码,多线程只能交替执行。...Python 无法进程使用简单的多线程并行机制,很多程序员只能采用复杂的多进程并行,进程本身的开销和管理复杂得多,并行程度无法和多线程相提并论,加上进程间的通信很复杂,有时只好不直接通信,用文件系统来传递汇总结果...Python 的版本确实比较复杂,大版本上有一次完全不兼容的升级,即 Python2 升级到 Python3Python2 上正常运行的程序直接拿到 Python3 上大概率是无法运行的,所以很多企业会同时安装...Python2Python3,只为了解决这个问题。

    34030

    官方倒计时:Python2的寿命还剩113天,逾期停止维护

    宁可保证用户使用的稳定性,不能急于更新到最新版本。 2. Python 官方「允许」Python2 持续存在。 Python 官方文档提到,大版本的更新有可能会「伤害」开发者。...因此,一些开发者希望继续使用 Python2。 这些原因下来,Python3 取代 Python2进程就拖了十来年。...而且,如果还有很多人继续使用 Python2,那些用 Python 开发程序的开源工作者工作起来会更困难。他们不能使用 Python3 的新特性让开源工具变得更好用。...答:终止日期到来后,即使用户发现了 Python2 上的灾难性安全问题,或者 Python2 开发的软件中发现了这些问题,志愿者不会帮助修复。...同时,使用 Python2 的用户可能会拖慢其他使用 Python3 进行开发的人员的工作进度。 如何将 Python2 代码转为 Python3? 答:请参阅官方提供的指南。

    67230

    110道一线公司Python面试题,推荐收藏

    5、谈下python的GIL GIL 是python的全局解释器锁,同一进程假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行...列举5个 1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi') Python2 既可以使用带小括号的方式,可以使用一个空格来分隔打印内容,比如 print '...hi' 2、python2 range(1,10)返回列表,python3返回迭代器,节约内存 3python2使用ascii编码,python使用utf-8编码 4、python2unicode...表示字符串序列,str表示字节序列 python3str表示字符串序列,byte表示字节序列 5、python2为正常显示中文,引入coding声明,python3不需要 6、python2...48、提高python运行效率的方法 1、使用生成器,因为可以节约大量内存 2、循环代码优化,避免过多重复代码的执行 3、核心模块用Cython PyPy等,提高效率 4、多进程、多线程、协程 5、多个

    2.1K21

    110道python面试题

    5、谈下python的GIL GIL 是python的全局解释器锁,同一进程假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行...列举5个 1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi') Python2 既可以使用带小括号的方式,可以使用一个空格来分隔打印内容,比如 print '...hi' 2、python2 range(1,10)返回列表,python3返回迭代器,节约内存 3python2使用ascii编码,python使用utf-8编码 4、python2unicode...表示字符串序列,str表示字节序列 python3str表示字符串序列,byte表示字节序列 5、python2为正常显示中文,引入coding声明,python3不需要 6、python2...48、提高python运行效率的方法 1、使用生成器,因为可以节约大量内存 2、循环代码优化,避免过多重复代码的执行 3、核心模块用Cython PyPy等,提高效率 4、多进程、多线程、协程 5、多个

    2.8K40

    python面试题(持续更新)

    的GIL        GIL 是python的全局解释器锁,同一进程假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),     使该进程内的其他线程无法运行...多进程因为每个进程都能被系统分配资源,相当于每个进程有了一个python   解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大 6、python实现列表去重的方法 #先通过集合去重...列举5个 1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi') Python2 既可以使用带小括号的方式,可以使用一个空格来分隔打印内容,比如 print '...hi' 2、python2 range(1,10)返回列表,python3返回迭代器,节约内存 3python2使用ascii编码,python使用utf-8编码 4、python2unicode...表示字符串序列,str表示字节序列       python3str表示字符串序列,byte表示字节序列 5、python2为正常显示中文,引入coding声明,python3不需要 6、python2

    1.2K110

    GPT-4o攻破ARC-AGI无法被挑战的神话!71%准确率成新SOTA

    GPT-4o以公共测试集50%、训练集的保留子集71%的准确率成为了新的SOTA! ARC-AGI上周被大肆宣传为LLM无法解决的基准。...针对每个问题选取最有希望的12个补全,然后通过向GPT-4o展示该程序示例的实际输出,并要求GPT-4o修改代码使其正确,从而尝试修复每个补全。...概括来说,Ryan通过足够长的、精雕细琢的少样本提示,生成许多可能的Python程序,从大约5k个猜测使用示例选出最佳猜测,然后进行调试。...缩放Python采样数量可以可靠地提高性能,每增加一倍,精度提高3%。 而且这距离AlphaCode使用的数百万个样本还很远! GPT-4o存在的非推理弱点 GPT-4o看不清楚。...即使是孩子可以做到,但LLMs不能。即使 LLMs 的知识比你多100,000倍,仍然做不到。ARC唯一的特殊之处在于它的设计初衷就是为了抵制记忆。这是 LLM性能的巨大障碍。

    13010

    Python基础回顾基本数据类型和运算容器分支和循环函数、生成器和类map, reduce和filter列表生成(list comprehension)字符串文件操作和pickle异常多进程(mult

    想要在Python2执行Python3的除法只要执行下面语句: from __future__ import division # 使用Python3的除法 1 / 2...# print成了指向3的变量 注意print是个很特殊的存在,Python3是按照函数用,Python2却是个命令式的语句,最早print的用法其实是下边这样: print "Hello world...所以单纯给print赋值是不灵的,Python2使用Python3的一些特性都是用from future import来实现。 模块导入 因为提到了对象名覆盖和import,所以简单讲一下。...如果要把这些参数都混用,则固定参数最前,关键字参数最后。 Python万物皆对象,所以一些情况下函数可以当成一个变量似的使用。...Python2有个效率更高的pickle叫cPickle,用法和pickle一样,Python3就只有一个pickle。

    1.5K70

    Python & Supervisor

    第一步安装supervisor: 目前为止supervisor,还是只支持python2,暂时还不支持python3,这就很尴尬了! 相信到了这一步已经有好多人看不下去了 ?...,默认1 startretries=3 失败最大尝试次数,默认3,当某个进程失败了,让她重启,默认三次 exitcodes=0,2 期望的进程退出码,0,和2是期望值,1是不期望值,会触发重启 stopasgroup...=true 暂停某个进程的时候,将他的进程停掉,避免僵尸进程的存在,消耗CPU资源,默认false killasgroup=true 同上,一般的将stopasgroup设为true的时候,这个会变成...如果设置为true,则在给程序发送SIGKILL信号的时候,会发送到整个进程组,它的进程会受到影响。...到文件描述符的时候,PROCESS_LOG_STDERR事件会被触发 environment 一个k/v对的list列表 directory supervisord在生成进程的时候会切换到该目录 umask

    61320

    python执行shell命令的几个方

    但是无法读取程序执行的返回值) 适用于Python2 尝试第三种方案 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。...用于指定一个可执行对象(callable object),它将在进程运行之前被调用 close_sfs windows平台下,如果close_fds被设置为True,则新创建的进程将不会继承父进程的输入...shell 同上 cwd 用于设置进程的当前目录 env 用于指定子进程的环境变量。如果env = None,进程的环境变量将从父进程中继承。...universal_newlines 不同系统的换行符不同,True -> 同意使用 \n startupinfo 只windows下有效,将被传递给底层的CreateProcess()...import subprocess obj = subprocess.Popen("mkdir t3", shell=True, cwd='/home/dev',) #cwd目录下执行命令

    3K10
    领券