Использование cProfile в приложении с точкой входа

Я знаю, что cProfile можно использовать так

python -m cProfile script.py

Но предположим, что у меня есть упакованное приложение (устанавливаемое через pip) с entry_point, определенным в setup.py, так что я могу вызывать приложение из терминала без явного использования какого-либо файла .py. Как я могу использовать cProfile в этом случае?


person foxpal    schedule 07.06.2019    source источник


Ответы (2)


Я нашел ответ в этой потоке:

python -m cProfile $(which application)
person foxpal    schedule 07.06.2019
comment
$(which application) — это просто скрипт вашей точки входа (с путем). - person Marcin Orlowski; 07.06.2019
comment
@MarcinOrlowski Да, я не знал, что это то, что мне нужно было вызывать с помощью cProfile. - person foxpal; 07.06.2019
comment
Вы не знаете. Если вы знаете путь, вы просто указали его, как упомянули в своем вопросе. Что делает $(...), так это вызывает which, который возвращает полный путь application (если в PATH). - person Marcin Orlowski; 07.06.2019

Что делать, если кто-то использует click для CLI? Кажется, это не работает для меня.

Обновление: на самом деле для cProfile требуется main и добавление стандартного

if __name__=="__main__":
    cli()

в программу mymodule/cli.py, проблема решена.

person Mateusz    schedule 16.02.2020