Невозможно заставить cProfile работать в IPython

Посмотрите на определение функции. Если вы забыли использовать «()» после объявления функции где-нибудь, вы получите много ошибок в том же формате:

 ... ??: class, interface, or enum expected ...

А также вы забыли закрытие скобки после завершения определения вашего класса или функции. Но обратите внимание, что эти недостающие скобки не являются единственной причиной такого типа ошибок.

13
задан Boris Gorelik 1 December 2009 в 10:43
поделиться

3 ответа

Внутри IPython вы можете использовать магическую функцию % prun :

In [9]: %prun c.f(3)
C.f -- param
         3 function calls in 0.066 CPU seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.066    0.066    0.066    0.066 <string>:6(f)
        1    0.000    0.000    0.066    0.066 <string>:1(<module>)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
26
ответ дан 1 December 2019 в 17:59
поделиться

Хотя IPython очень удобен, существует множество редких случаев, когда он нарушает рабочий код или маскирует ошибки. Так что'

3
ответ дан 1 December 2019 в 17:59
поделиться

Проблема не в исходном постере, но вы также можете получить ту же ошибку, если вызываете cProfile.run () не в пространстве имен __main__ (из функции или импорта). В этом случае вам нужно использовать следующее вместо метода run ():

cProfile.runctx("your code", globals(), locals())

Слава этому сообщению за то, что помогли мне разобраться в этом.

15
ответ дан 1 December 2019 в 17:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: