Профилирование модуля Python из командной строки
У меня есть проект Python, где я выполняю приложение в виде модуля, используя -m
флаг. Так что-то вроде:
python -m apps.validate -i input.mp4
Теперь я хочу профилировать его с помощью командной строки. Так что встроенные примеры предлагают вызывать сам модуль cProfile. Тем не менее, я не могу сделать что-то вроде:
python -m cProfile apps.validate -i input.mp4
Однако это приводит к ошибке "Нет такого файла или каталога". Я не могу просто пойти в apps
каталог и запуск validate.py
из-за относительного импорта.
Есть ли способ профилировать модуль в командной строке?
0 ответов
Вместо запуска cProfile в оболочке, возможно, вы можете использовать cProfile в своем скрипте python, добавив некоторый код в apps.validate или создав новый скрипт и импортируя apps.validate таким образом. Может какая-то опечатка внизу:)
import cProfile
import sys
def run_validate(args):
# run your apps.validate code with shell arguments args here
pass
if __name__ == '__main__':
pr = cProfile.Profile()
pr.enable()
run_validate(*sys.argv)
pr.disable()
pr.print_stats()
затем просто запустите исходный скрипт: python -m apps.validate -i input.mp4