运行Python代码

因软件更新较快,部分文档内容与软件最新版本有所出入,请知悉。

执行python代码片段。

使用本模块有一些基础需求:

  • 您需要了解python;
  • 本模块使用了pythonnet库实现,仅支持python3。
  • 64位windows应安装64位版本python,32位windows安装32位python。

注意事项

  • 请使用从官网下载安装的python(https://www.python.org/downloads/),第三方python环境可能无法正常运行。
  • 在py脚本中,尽量只访问简单类型的quicker变量,如数字/文本。目前底层依赖库可能存在bug,使用复杂类型(如列表/词典)有概率遇到闪退问题。
  • py脚本将在quicker进程中执行,拥有比普通非管理员身份运行的程序具有更高的权限。因此在py代码中不能使用com接口访问和控制第三方软件(如访问和使用Word.Application对象)。


Python的路径

可以直接设定cpython主运行库的路径,也可以让Quicker自动查找python。

1) 直接指定python主运行库的路径(1.35.37+版本)

2)自动查找python运行库

未设定运行库路径时,Quicker 会尝试从系统PATH环境变量所包含的目录中寻找符合条件的目录。

目录名需要包含版本信息,如3.9版目录名应该为xx\xxx\python39(目录内有python39.dll,目录名和dll文件名匹配)。


参数

【脚本内容】需要执行的python脚本内容。

py脚本中,通过quicker.context.GetVarValue('变量名')读取动作变量。通过quicker.context.SetVarValue('变量名',value)更新动作变量。

从python返回内容

简单的内容,可以在python脚本中可以直接使用quicker.context.SetVarValue('变量名',value)返回到对应类型的变量中。Quicker 3.35.37版本后,也可以使用此方式返回文本列表和简单的词典变量。

##.py 
quicker.context.SetVarValue('text', 'hello world')
quicker.context.SetVarValue('list', ['hello1','hello2','hello3'])
quicker.context.SetVarValue('dict', {'a':1, 'b':2, 'day':'2022-1-1'})


建议不要返回更复杂的数据类型(从python到c#的转换可能会出现奇怪的问题),而是在python中完成所有处理以后将简单的值返回到动作。


测试动作

测试动作

更新历史

  • 20230215 增加一些注意事项说明。

反馈与讨论

语雀在语雀上查看