点控牛牛是一款开源的自动化控制工具,旨在帮助用户通过可视化界面或脚本实现重复性任务的自动化操作,适用于办公自动化、测试流程优化、设备控制等合法合规场景,搭建点控牛牛需要一定的技术基础,本文将基于主流的Windows和Linux系统,从环境准备、安装配置到基础使用,提供详细的搭建教程,帮助用户顺利完成部署。

在搭建点控牛牛之前,需确保满足以下环境要求,这是保证后续步骤顺利进行的基础:
点控牛牛基于Python开发,需先安装以下依赖:
python -m ensurepip --upgrade 安装 点控牛牛采用开源模式,源码托管于GitHub,可通过以下步骤获取:
打开命令行工具(Windows下使用CMD或PowerShell,Linux下使用Terminal),执行以下命令:
git clone https://github.com/your-repo/dianniu-niuniu.git # 替换为实际仓库地址 cd dianniu-niuniu
若Git未安装或网络受限,也可直接从 Releases页面下载ZIP压缩包,解压后进入项目目录。
为确保下载的源码未被篡改,建议校验SHA256校验和(适用于GitHub下载的ZIP包):
certutil -hashfile 文件名 SHA256;Linux:sha256sum 文件名),对比是否一致 进入项目根目录后,使用pip安装项目依赖:
pip install -r requirements.txt # 安装依赖清单中的所有包
若requirements.txt中未包含部分可选依赖(如PyQt5),可手动安装:
pip install PyQt5 # 图形界面支持(若使用GUI模式) pip install pyserial # 串口设备控制(若涉及硬件交互)
scripts文件夹添加到系统环境变量PATH,以便在任意目录调用点控牛牛命令 PATH,添加项目路径\scripts scripts目录添加到~/.bashrc或~/.zshrc中: echo 'export PATH=$PATH:项目路径/scripts' >> ~/.bashrc source ~/.bashrc
首次运行点控牛牛前,需初始化配置文件:

python init_config.py # 在项目根目录执行
执行后会在项目目录生成config.ini文件,用于存储运行参数,如日志路径、默认端口、设备连接信息等,可根据需求修改配置项,
[log] level = INFO # 日志级别(DEBUG/INFO/WARNING/ERROR) path = ./logs/ # 日志文件存储路径 [server] port = 8080 # 服务模式默认端口 host = 0.0.0.0 # 监听地址(0.0.0.0表示允许所有IP访问)
点控牛牛支持命令行模式、图形界面模式和服务模式,根据需求选择:
命令行模式(适合调试和自动化脚本调用):
python main.py --mode cli # 进入命令行交互界面
启动后可通过输入指令控制功能,如help查看帮助,run script.py执行脚本。
图形界面模式(适合可视化操作):
python main.py --mode gui # 启动GUI界面
需提前安装PyQt5,启动后通过拖拽组件、配置参数生成自动化流程。
服务模式(适合长期运行的后台任务):
python main.py --mode service --port 8080 # 启动为HTTP服务,监听8080端口
服务模式支持通过API接口调用功能,例如发送HTTP请求触发自动化任务。
version,若显示版本号(如v1.0.0)则表示安装成功 http://localhost:8080,若显示API文档或服务状态页面,则表示服务正常运行 以图形界面模式为例,演示如何创建一个简单的“自动打开记事本并输入文本”的任务:

添加组件:在左侧组件库中拖拽“应用程序启动”组件到画布,双击组件配置参数:
C:\Windows\System32\notepad.exe(Windows记事本路径) 添加输入组件:拖拽“键盘输入”组件到“应用程序启动”组件后,配置参数:
Hello, 点控牛牛! 保存并运行:点击顶部“保存”按钮,将流程保存为notepad_demo.flow;点击“运行”按钮,系统将自动打开记事本并输入指定文本。
若需通过脚本控制,可在项目目录下创建demo.py文件,编写以下代码:
from dianniu_niuniu import AutomationEngine
engine = AutomationEngine()
engine.add_app_start("C:\\Windows\\System32\\notepad.exe")
engine.add_keyboard_input("Hello, 点控牛牛!", delay=1000)
engine.run()
执行python demo.py即可实现相同功能。
原因:依赖包未安装或版本不兼容
解决:重新执行pip install -r requirements.txt,或单独安装缺失模块(如pip install PyQt5==5.15.0指定版本)
原因:脚本无执行权限
解决:给main.py添加执行权限:chmod +x main.py
原因:防火墙拦截或监听地址配置为127.0.0.1
解决:
sudo ufw allow 8080(若使用ufw防火墙) config.ini中host是否配置为0.0.0 原因:组件参数配置错误(如路径错误、权限不足)
解决:查看日志文件(默认路径./logs/),根据错误信息调整参数;应用程序启动”失败时,检查路径是否正确及是否有权限运行该程序