os.system执行allure提示找不到sh: allure: command not found

1.运行环境:

        操作系统:macOS Monterey

        Python版本:Python 3.10.8

        Allure 版本:2.19.0

        Pycharm:2021.1.3

2.问题现象:

        使用pytest+allure生成报告时,遇到以下问题:

        在主程序all.py和Python Console执行os.system("allure generate ./temp -o ./report --clean")

时都报错sh: allure: command not found(图1)

        但在Terminal里执行allure generate ./temp -o ./report --clean,就不报错(图2)。

        如下图所示:

os.system执行allure提示找不到sh: allure: command not found_第1张图片

图(1)

os.system执行allure提示找不到sh: allure: command not found_第2张图片

图(2)

3.解决办法

        网上也看到好多博主分享的办法,有让改mac系统登陆shell的(我的默认是/bin/zsh),有让改系统的环境变量的,或许可以解决你们的问题,但这些方法都没能解决我的问题。不过也从前辈们的分享中学到了不少知识,比如mac系统环境配置;os.system和open.system的区别等等,大家有兴趣可以研究下。

先说问题原因:terminal能执行,python console 和 主程序执行报错,是因为pycharm的环境变量配置的不对。terminal实际使用的是电脑本身的环境变量,python console和主程序都是用的python解释器的变量。

具体配置步骤如下:

(1)先解决python console控制台执行allure的报错,如下图顺序操作

如下图所示,mac是Preferences,windows是Settings

os.system执行allure提示找不到sh: allure: command not found_第3张图片

编辑环境变量

os.system执行allure提示找不到sh: allure: command not found_第4张图片

os.system执行allure提示找不到sh: allure: command not found_第5张图片

os.system执行allure提示找不到sh: allure: command not found_第6张图片

mac查看allure的安装路径命令:which allure

 

如下图所示,查看一下刚添加的路径,确认后,先点击Apply,再点击OK,

os.system执行allure提示找不到sh: allure: command not found_第7张图片 

重启pycharm,然后在Python Console里再次执行os.system("allure generate ./temp -o ./report --clean”),执行成功!

os.system执行allure提示找不到sh: allure: command not found_第8张图片

此时运行all.py,仍然报错

(2)再解决all.py文件运行报错的问题

如下图所示,编辑主程序(我的是all.py,你们根据自己实际的主程序文件找就行)的Configurations,

os.system执行allure提示找不到sh: allure: command not found_第9张图片

如下图所示,编辑环境变量

os.system执行allure提示找不到sh: allure: command not found_第10张图片

os.system执行allure提示找不到sh: allure: command not found_第11张图片

此时再次运行all.py,执行成功!

os.system执行allure提示找不到sh: allure: command not found_第12张图片

 

希望上述方法能帮助到你解决问题~

不要放弃啊,一定要多找找原因。 

 

 

    

 

你可能感兴趣的:(Python,pycharm,ide,python)