【插件开发】使用 Python 扩展 UiBot 的功能

叶飞 11月前 4358

前言:

UiBot 除了自带的强大功能外,还允许有编程经验的开发人员对功能进行自由扩展,目前 UiBot 支持以下四种扩展方式:

Python 插件、Lua 插件、Lua Mod 插件、COM 插件( .Net 也使用这种方式扩展)

本期教程将为大家讲解如何利用这四种扩展方式扩充 UiBot 的功能。


Python 插件开发教程:




1. 插件开发快速上手:


打开 UiBot 安装目录下的 extend \ python 目录,在这个目录下创建 test.py 文件(记得修改文件扩展名),使用记事本打开这个文件,写入如下代码:

def Add(n1, n2):
    return n1 + n2


然后将文件另存为 utf-8 编码格式:

_【插件开发】使用 Python 扩展 UiBot 的功能


插件保存后,打开 UiBot 在源代码视图写入代码:

Import test
traceprint test.add(1, 1)


运行 UiBot 脚本,运行后结果如下(输出2)代表插件调用正常:

_【插件开发】使用 Python 扩展 UiBot 的功能


如果运行结果不正常,可根据输出窗格的报错提示尝试解决,如果报错为 模块test没有加载成功,则检查 test.py 中的代码是否正确、文件名和路径是否正确(例如文件后缀问题)




2. 开发环境部署(VS Code):


使用 Python 编写 UiBot 扩展库很容易,但 Python 本身是一门独立的编程语言,使用文本编辑器开发和调试都很不方便,因此建议使用 VS Code 集成开发环境做 Python 扩展库开发。


首先需要在机器上安装 Python 3.7.1,下载地址:https://www.python.org/downloads/release/python-371/

下载时选择 Windows x86-64 executable installer 版本,下载完成后直接安装。

_【插件开发】使用 Python 扩展 UiBot 的功能


安装 Python 时需要勾选 Add Python 3.7 to PATH,然后点击 Install Now 安装即可:

_【插件开发】使用 Python 扩展 UiBot 的功能


然后在机器上安装 VS Code,下载地址:https://code.visualstudio.com/

_【插件开发】使用 Python 扩展 UiBot 的功能


VS Code 安装完成后,是英文版本:

_【插件开发】使用 Python 扩展 UiBot 的功能


点击 VS Code 左侧边栏上方最后一个按钮(见截图),然后在搜索框里输入 Chinese,找到简体中文语言包安装:

_【插件开发】使用 Python 扩展 UiBot 的功能


安装完成后,VS Code 会提示是否重启编辑器使语言包生效,重启后软件即可显示为中文:

_【插件开发】使用 Python 扩展 UiBot 的功能


如果这步完成后语言没有切换成功,可以按热键 Ctrl + Shift + P,搜索 Configure Display Language,配置显示语言:

_【插件开发】使用 Python 扩展 UiBot 的功能


将红圈选中的内容更改为 zh-cn,保存文件后重启 VS Code,即可更换为中文显示:

_【插件开发】使用 Python 扩展 UiBot 的功能


VS Code 和 Python 都安装完成后,使用 VS Code 打开任意 py 后缀的文件,会自动提示是否安装 Python 开发环境

_【插件开发】使用 Python 扩展 UiBot 的功能


Python 扩展安装完成后,VS Code 还会要求你安装 pylint,这是在 VS Code 开发时用于语法错误检查的组件,可以根据自己的需求选择是否安装。


以上步骤操作后,使用 VS Code 的 Python 开发环境就部署完毕了,编写代码,然后F5运行看看效果吧。




3. Python 插件测试:


在 Python 文件中写入如下代码,这段代码在 UiBot 环境下是不会运行的,但在 Python 调试状态下会运行,以此实现更便捷的 Python 扩展库调试:

# 测试代码
if __name__ == '__main__':
    print(123)

_【插件开发】使用 Python 扩展 UiBot 的功能




4. UiBot 调用方法:


插件的文件名即为插件名,例如我们编写的插件文件名为 test.py,则在 UiBot 中使用 Import test 即可载入插件。


对于 Python 插件来说,每个 def 的函数都可以使用 UiBot 调用。


目前 UiBot 还不支持 Python 插件中的一些特性,例如 可选参数、可变参数。




5. 插件使用的其他组件安装到 UiBot:


UiBot 内置的 Python 运行环境包含了绝大多数 Python 自带的扩展库和 pywin32 等使用频度较高的库,但仍不能保证全部覆盖,如果你在开发 Python 插件的过程中,使用了 UiBot 没有附带的库,则可能产生插件在 Python 环境下运行正常,在 UiBot 环境下运行不正常的问题,这时候就需要将对应的扩展库添加到 UiBot 安装目录下的 lib \ site-packages 文件夹中解决。




6. Python依赖的存放位置:

我们在编写Python扩展时经常会用到pip安装其他的第三方依赖模块,如果要在UiBot 中顺利使用自己编写的扩展,那么同样要把这些第三方模块置入到UiBot 中,下面我们拿Python中的"requests"模块举例。

首先通过pip show requests命令,我们可以看到如下信息:

_【插件开发】使用 Python 扩展 UiBot 的功能

其中 Location代表当前开发环境第三方库的安装位置,Requires代表requests模块的依赖,我们需要进到Location目录下,将对应模块(包含自身)拷贝到UiBot安装目录下的\lib\site-packages之中


Location对应目录

_【插件开发】使用 Python 扩展 UiBot 的功能

_【插件开发】使用 Python 扩展 UiBot 的功能


UiBot对应目录

_【插件开发】使用 Python 扩展 UiBot 的功能

如此,我们即可正常的在UiBot之中使用依赖

最新回复 (10)
  • 10月前
    2
    支持!
  • mawu 10月前
    3
    可是我哦   英语太low   没法玩    唔唔唔!!!
  • Rick 7月前
    4
    好铁,严重支持
  • cyb 2月前
    5
    good!
  • Kim_163332 1月前
    6
    学习了,懂了不少,感谢楼主
  • chen_132537 1月前
    7

    想问下比如说我test.py里还import了其他第三方模块(没法完整放到uibot/extend文件夹下),报错“模块加载中发生错误:No module named 'PySimpleGUI'”之类的,但我不通过uibot却能正常运行模块,这个怎么解决?

  • queue 1月前
    8


    记录一下这个 希望对别人有帮助

  • 离哈 23天前
    9
    搞定
  • chen_132537 22天前
    10
    有没有可能py文件和新建流程放在同一个目录下管理啊,每次都要移动到uibot固定路径下,不太方便管理啊
  • XP_151807 8天前
    11
    UiBot不能装wxPython吗?
返回
发新帖