aardio中调用python的方法有两种,py3 和 process.python模块
- py3模块:如果经常要拿到python返回的值或从aardio中传数据给python去处理,aardio和python的交互比较多的话,可以考虑使用py3模块,缺点是:py3模块使用起来比较麻烦些,尤其是在异步多线程操作的话,中间需要学习的东西比较绕。
- process.python模块:如果aardio和python的交互不多(比如aardio负责做界面,python负责做爬虫或负责下载文件之类程序),只需后台由python负责完成相关工作的,用process.python来处理是非常方便的,而且使用logRespone可以完整回传Python中print或loggin打印出的信息给aardio的界面控件。 缺点:一般直接指定执行.py脚本,中间不好做交互,参数传递一般在execfile()命令执行时传递给python脚本,然后待脚本执行完成。
关于process.python如何使用?
// process.python.execfile 实际上就是执行:"../py/python3.8.exe xxx.py"
// python文件中用sys.args来接收参数
import process.python
pyMain = process.python.execfile("\py_source\test_arrdio_process_python.py","ar_parm1 ar_parm2")
// execfile(@code,@2)
// 参数 @code:py文件,此方法可以在py文件中使用获取文件路径的方法或函数,但不能在文件前用$将文件加载为资源文件
// 参数 @2:可以用一个字符串参数指定多个启动参数,空格分隔多参数
// 和 exec(@code, @2)的区别:exec()可指定py文件或$开头的资源文件,但注意这是内存加载Py代码,Py并不知道文件路径
// 如:var pyMain = process.python.exec($"\py_source\pyMain.py")
// 和 command(@code, @2)的区别: command()@code参数支持使用代码开始为aardio模板标记的字符串,启用模板语法: chm://the%20language/template_syntax.html 。
// 和 test(@code, @2)的区别:test()仅立即执行代码,成功返回 true,否则返回 null 或 false。
//var pyMain = process.python.test("\py_source\pyMain.py","parm1 parm2")
// process.python.execfile 及以上方法均可以创建 Python 进程,当前进程退出时 Python 会自动退出。返回进程管道( process.popen )对象。
// 这个过程是异步的,也就是说如果不主动循环等待,程序会自动继续进行下去而不会等待py文件执行完毕
/* logResponse(回显参数,间隔时间)
如果回显参数:是指定回显对象(如edit控件),则异步回显进程输出,函数不会阻塞,而是继续向后执行。
如果回显参数:不指定参数,或参

本文介绍了aardio调用Python的两种方式:py3模块和process.python模块,详细解析了各自适用场景及优缺点。在使用process.python时,aardio会在"\py"目录下自动下载Python3.8。如果调用的Python文件导入了第三方库,需确保库位于"\py"或"\py\lib\site-packages"目录。可以通过aardio的process.python.pip在工程内安装和管理第三方库。
最低0.47元/天 解锁文章
4351

被折叠的 条评论
为什么被折叠?



