Профилировщик Python не завершается с правильным кодом выхода - PullRequest
0 голосов
/ 27 августа 2018

Я профилирую скрипт на python, используя cProfile, и хочу, чтобы он имел тот же код завершения, что и код выхода моего скрипта.

Скажем, мой скрипт 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 голосов
/ 27 августа 2018

Краткий ответ: нет

Поскольку ненулевой код выхода из профилировщика означает, что при запуске профилировщика произошла ошибка. Это не работа профилировщика - проверять код выхода вашего скрипта. Однако вы можете вызвать исключение, если код выхода - это все, что вас волнует:

# error.py
raise Exception
...