解决mac端pycharm执行allure命令报错:returned non-zero exit status 127

1、错误代码:

python 复制代码
    def generate_allure_report(self):
        common = ["allure", "generate", "./reports/allure/temps", "-o", "./reports/allure/report", "--clean"]
        # common = ['allure', '--version']
        try:
            # 使用subprocess.run来执行命令
            result = subprocess.run(
                common,
                shell=True, # mac端使用时需要注释掉,否则报错
                check=True,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                text=True
            )
            logutil.info("Allure report generated successfully.")
            logutil.info("Output:", result.stdout)

2、代码背景

上述代码是在pytest执行完成后执行allure命令生成测试报告,本身可以通过os.system执行,但是为了符合目前新的规范,个人选择改用了subprocess.run()的方式去写入命令。

本来在window端执行没有任何问题,但是在mac端执行时,则直接报错:

returned non-zero exit status 127

3、报错原因

首先,我在命令行手动执行allure命令是没问题的,所以确定allure安装配置正确。刚开始以为是版本问题,后来切换了其他版本发现也是一样报错,于是百度了一下,发现居然没有人发同样的问题上来,最终,ai了一下,发现了正确原因:

在 macOS 上,subprocess.run 的 shell=True 参数可能导致命令解析问题,尤其是当 allure 命令依赖于环境变量时。

但是原因也不具体,这里解决问题,不探究底层了。

4、解决方式

把shell=True这行注释掉后,就可以正常调用执行了。

所以最终正确代码如下:

python 复制代码
    def generate_allure_report(self):
        common = ["allure", "generate", "./reports/allure/temps", "-o", "./reports/allure/report", "--clean"]
        # common = ['allure', '--version']
        try:
            # 使用subprocess.run来执行命令
            result = subprocess.run(
                common,
                # shell=True, # mac端使用时需要注释掉,否则报错
                check=True,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                text=True
            )
            logutil.info("Allure report generated successfully.")
            logutil.info("Output:", result.stdout)
相关推荐
赵广陆5 小时前
企业实战:web服务集成
前端·pycharm·fastapi
赵广陆10 小时前
企业实战:数据图与状态定义
pycharm·langchain·langgraph
承渊政道16 小时前
【Python编程—从入门到实践】(Python列表:从索引到增删排序的系统理解)
开发语言·python·pycharm·索引·列表·增删查改
a-62616 小时前
三维重建的步骤-1(采集的是环绕物体均匀旋转一圈的视频)
python·pycharm·三维重建·metashape
守城小轩17 小时前
Chromium 148 编译指南 macOS篇:环境配置要求(一)
macos
Codeking__17 小时前
iOS 动画:core Animation 底层原理
macos·objective-c·cocoa
SatanII17 小时前
读懂 SELinux:强制访问控制 MAC,解决 httpd 服务权限报错实战
linux·运维·服务器·网络·macos
2501_9159184118 小时前
iOS 真机调试工具推荐,安装运行、性能分析有哪些工具
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
mCell1 天前
谁在为 AI 开车:Agent 浏览器生态调研(2026)
chrome·macos·agent
Albert Edison1 天前
PyCharm 字体大小设置
ide·python·pycharm