Я использую хороший инструмент под названием https://github.com/rkern/line_profiler
Чтобы использовать его, вам нужно поместить декоратор @profile
в несколько мест в скрипте, чтобы указать, какие функции должны быть профнастил. Затем вы выполняете сценарий с помощью kernprof -l script_to_profile.py
Очевидно, что при запуске сценария самостоятельно с помощью python script_to_profile.py
декоратор не определен и, следовательно, сценарий падает.
Я знаю, как определить я могу передать флаг из командной строки и определить его в основном скрипте в зависимости от того, как установлен флаг. Однако я не знаю, как передать определение декоратора (или флаг) загружаемым модулям, чтобы они не обрабатывали sh в момент загрузки. Есть идеи?
def profile(func):
return func