Airtest脚本打包成exe出现的错误以及解决方法

使用Pyisntaller打包airtest脚本可能出现的问题。

>>>打包完成之后仍然使用本地的python环境

脚本中run_script()来调用air脚本,而不是直接使用subprocess启动命令行运行。
 Run_script()调用方法:
from airtest.cli.runner import AirtestCase, run_script
from argparse import *

args = Namespace(device=["android://127.0.0.1:5037/{设备序列号}"], log=False, recording=None, scirpt=script, compress=0, no_image=0)

run_script(args, AirtestCase)

>>>打包成onefile形式时候运行提示缺少文件

所有需要引用文件的地方,路径需要按照以下格式书写,以同时满足调试和打包完成都可以运行的需求
if getattr(sys, 'frozen', False):
    bundle_dir = sys._MEIPASS
else:
    bundle_dir = os.path.dirname(os.path.abspath(__file__))
如果脚本运行期间并未进行路径切换操作,一直在目录最上层进行操作,所以else下方的bundle_dir可以替换为:
bundle_dir = os.getcwd()
接着在bundle_dir接上需要调用文件的相对路径即可,例如:
scirpt = bundle_dir = '/CtsVerifier_oak.dir'

>>>打包成功后运行出现GBK编码错误

将Python/Lib/site-packages/PyInstaller/loader/pyimod03_importers.py中的298行附近的
with open(filename, 'r') as fs:修改为
with open(filename, 'r', encoding='utf-8')指定编码格式。
(上面的文件路径为python3.7,其他版本可能会有不同)

打包air脚本时候需要将它当成资源文件打包,放在data参数中。

还有可能需要额外导入的包:markupsafe, jinja2(模板), poco, airtest, hrpc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值