Docker镜像中运行pytest+allure报无效语法,allure是否有Python版本要求?
问题原因
你遇到的语法错误由Python版本不兼容导致,报错栈指向的代码def __call__(self, func: _TFunc) -> _TFunc:中使用的类型注解语法是Python3.0及以上版本才支持的特性,Python2.7完全不识别该语法,因此在加载allure依赖包时直接抛出invalid syntax错误。
Allure Python组件版本要求
- 目前维护的所有正式版allure-pytest、allure-commons组件均已停止对Python2系列版本的支持,最低运行要求为Python 3.6及以上版本。
- 最后一个兼容Python2.7的allure-pytest版本为2.8.18,该版本配套依赖也适配Python2.7运行环境。
解决方案
可选两种处理方案:
- (推荐)升级Docker镜像内的Python版本至3.6或更高,重新安装最新版pytest和allure-pytest后即可正常运行。Python2已经停止官方维护多年,升级后可以避免更多兼容性和安全问题。
- 若必须保留Python2.7运行环境,执行以下命令安装兼容版本的allure组件:
pip install allure-pytest==2.8.18
安装完成后重新执行测试即可。
内容的提问来源于stack exchange,提问作者xmu linliu
相关产品推荐
相关产品推荐

