使用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(f

本文档详细介绍了使用PyInstaller打包Airtest脚本时可能遇到的问题及解决办法,包括如何确保脚本使用打包后的环境、处理onefile形式运行时的文件缺失问题,以及解决GBK编码错误。此外,还提到了打包时需要额外考虑的依赖库如markupsafe和jinja2等。
最低0.47元/天 解锁文章
964

被折叠的 条评论
为什么被折叠?



