Python探查器无法使用正确的退出代码退出

时间:2018-08-27 11:53:16

标签: python bash profiling pytest cprofile

我正在使用cProfile对python脚本进行性能分析,并且希望它具有与脚本的退出代码相同的退出代码。

假设我的脚本 error.py 是:

import sys

print ("Error")
sys.exit(1)

当然,当我使用它运行时:

python3 error.py

该过程以代码1退出,但是当我使用以下命令运行它时:

python3 -m cProfile error.py

退出代码为0,我想将 error.py 的退出代码传播到探查器。

有没有办法做到这一点?


编辑

应用pkqxdd的建议很有帮助,但是我的问题更加复杂。 现在是 error.py

print ("Error")
raise Exception

但是,我将cProfile与py.test-3一起使用如下:

 python3 -m cProfile -o profile $(which py.test-3) error.py

上面的命令仍然会产生退出代码0。

1 个答案:

答案 0 :(得分:0)

简短的回答:否

因为来自探查器的退出代码非零,这意味着运行探查器时发生错误。检查脚本的退出代码不是探查器的工作。但是,如果您只关心退出代码,则可以引发异常:

# error.py
raise Exception