Airtest 在树莓派上安装 airtest 踩坑记

wangpengfei100 · 2018年08月13日 · 最后由 coolhaul 回复于 2020年02月17日 · 5021 次阅读
本帖已被设为精华帖!

前段时间在树莓派上运行 airtest,也叨扰了讨论群的各位,觉得有必要总结一下,后面人避免踩坑~
前面的可用步骤可以成功安装了,后面的可以选择不看(捂脸)

我的设备:

树莓派 3b arm7l 运行的原装系统 ;

可用步骤:

1. opencv-contrib-python

pip3 install opencv-contrib-python==3.3.0.9 -i https://www.piwheels.org/simple # 安装3309版本
sudo apt-get update #安装依赖库
sudo apt-get install libhdf5-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqt4-test
sudo apt-get install libqtgui4
sudo apt-get update

python3
import cv2 # 检查导入成功

2. airtest

1.下载下 airtest 源码

git clone https://github.com/AirtestProject/Airtest.git

2.修改 requirement.txt 删除 opencv 那句
3.本地安装 airtest

cd airtest #你的源码文件夹
pip install -e .

3. 检查 airtest 是否可以正常运行

airtest run "path to your .air dir" --device Android:///

4.Poco

下载 poco 源码

git clone https://github.com/AirtestProject/Poco.git

2.修改 requirement.txt 删除 airtest 那句
本地安装 poco

cd poco #你的源码文件夹
pip install -e .

以上步骤做完,可以在树莓派上运行 airtest 跟 poco 项目的脚本 。

=============================================详细思路在下面======================================================================

天真的以为:

pip install -U airtest

美滋滋...

实际上报错 1:

opencv-contrib-python=3.2.0.7 没有适合当前的版本

原因:opencv-contrib-python 的 linux 版本,是使用 manylinux 编译的 linux 版本,所以仅有 x86 架构的,并不支持 arm 架构。

解决方案:在网站 piwheels 上下载对应的 wheels 包,或者直接安装;

pip install opencv-contrib-python==3.2.0.7 -i https://www.piwheels.org/simple

piwheels: piwheels 是 Python 包存储库,为 Raspberry Pi 使用的 ARMv6 和 ARMv7 架构提供轮子(预构建的二进制文件)
以为解决了,美滋滋...

赶紧去欣赏下安装的模块吧。

$python3
$import cv2

依旧报错 2:

ImportError: libhdf5_serial.so.100: cannot open shared object file: No such file or directory
原因:缺少了若干模块
解决方案:直接安装

sudo apt-get update
sudo apt-get install libhdf5-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqt4-test
sudo apt-get install libqtgui4
sudo apt-get update

这次总 OK 了吧,赶紧再次运行 “import cv2” 试一下!

依旧报错 3:

ImportError: /usr/local/lib/python3.5/dist-packages/cv2/cv2.cpython-35m-arm-linux-gnueabihf.so: undefined symbol: hb_buffer_get_glyph_infos
原因:未知,github 上问了原作者,也未知,建议我用新版本
解决方案:换新的版本

pip install opencv-contrib-python==3.3.0.9 -i https://www.piwheels.org/simple

去试一下 导入,终于成功了!

那么,抓紧直接安装 airtest 吧!

尴尬的问题出现了, airtest 的 requirement.txt 里写的 opencv-contrib-python 是 3.2.0.7,所以只能源码下载到本地,注销掉这句话再本地安装。

1.下载下 airtest 源码

git clone https://github.com/AirtestProject/Airtest.git

2.修改 requirement.txt 删除 opencv 那句
3.本地安装

cd airtest #你的源码文件夹
pip install -e .

终于安装成功了。
同理安装 poco。

愉快地 airtest run everything 吧。

共收到 16 条回复 时间 点赞
匿名 #1 · 2018年08月13日

厉害厉害,有安装脚本或者使用文档上的问题,欢迎提 Pull Request 啊大哥

@wangpengfei100 楼主大神 想用树莓派 +airtest 玩什么花样 为什么一定要用树莓派

同 2 楼,我也想知道打算用在什么地方?
只是为了搭建玩,还是有实际用处?

之前我在 Linux 上也踩过很多坑。但是在树莓派上没试过,记录一下

老马 回复

我们可能测试对象更特殊,我们是测试一个 “包含了安卓模块的交互系统”,所以我们的测试更多是系统集成的测试,更多从 rs232 等串口作为连接,有硬件的部分在。
系统层次的测试,纯软件部分的测试覆盖的不够全面,一些功能不方便展开。 如 adb TCP/IP 连接安卓,在做网络切换后,即断掉了与被测机器的连接,串口测试则可以解决。
显示层及其他输出,通过外置设备更贴近用户的感知,这部分的工作,用树莓派去拓展,会更简单。
树莓派基本安装 linux 系统,除了 arm 架构的弊端外,其他与普通发行版 linux 无差异,人员配置上会更轻松,综上我们尝试用树莓派作为载体去做。

群主是狗 回复

公司业务引导选型

思寒_seveniruby 将本帖设为了精华贴 08月13日 21:16

膜拜 wangpengfei100 大神😱 😱 😱 😱

琉丶言 在树莓派上安装 airtest 踩坑之个人实践 中提及了此贴 08月15日 08:35
10楼 已删除

烦死哒撒撒发的

fdsa fafdfda

13楼 已删除

fdsadfs afds

16楼 已删除

树莓派上运行 Airtest 图像识别的速度超慢,要 2s 以上。图像识别部分我改成了服务形式的,在服务器上做,通过网络请求图像识别,一次识别可以控制在 1s 左右。

JamesChung 回复

我也是换成了 socket 去取服务端的运行结果,图像识别慢应该跟 opencv 的版本有关,一个图像要对比两次,第二次才会成功。

JamesChung 回复

你好,请问你这个单独把 airtest 拿出来作为一个服务是怎么个做法啊,可以讲下吗?

A308寝帅 回复

就是把单独的图像识别相关的 python 文件放到服务器上执行啊,没有难度的。

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08

请问各位大佬,linux 系统 python 版本 2.7,64 位的,在安装 opencv_contrib_python 这一步,先后安装 opencv_contrib_python-4.2.0.32-cp27-cp27mu* 的 whl 文件都安装失败,报错信息:
ERROR: opencv_contrib_python-4.2.0.32-cp27-cp27m* is not a supported wheel on this platform.
然后又默默把这个版本所有 cp27 的都试了一遍,全报这个错。随后用版本 opencv_contrib_python-3.2.0.7 也是这个报错。请问这个要怎么解决呢???

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册