Проблемы при попытке использовать cProfile

Я пытаюсь запустить код ниже в Python 2.7 GUI:

python -m cProfile -s time abc.py

Однако вот ошибка у меня есть:

>>> python -m cProfile -s time abc.py     
>>>                  ^
>>> SyntaxError: invalid syntax

Любая идея, как я могу решить это?

2 ответа

Решение

Вам нужно запустить это из командной строки, а не из графического интерфейса или интерактивного приглашения Python. Видя >>> означает, что вы находитесь в интерактивном приглашении Python.

В командной строке, иначе окно терминала, перейдите в каталог, в котором abc.py находится и введите:

python -m cProfile -s time abc.py  

Я получаю это:

python -m cProfile -s time abc.py 
         2 function calls in 0.000 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    0.000    0.000 abc.py:1(<module>)

Опция -m Является ли это:

-m mod: запускать библиотечный модуль как скрипт (завершает список опций)

Версия Python 2.7.12.

РЕДАКТИРОВАТЬ

Если вы хотите сделать это из интерактивной подсказки, возможно, самый простой способ - это использовать IPython или Jupyter Notebook. Тогда вы можете сделать это:

[1] %run -m cProfile -s time abc.py

python -m ... сам по себе не является синтаксисом Python: это синтаксис для запуска Python извне. Поэтому интерпретатор Python (GUI или нет) не сможет обработать эту команду. (Мы знаем, что вы работаете внутри интерпретатора Python из-за контрольной >>> незамедлительный.)

Что значит "извне"? Это означает, что вам нужно набрать эту команду на > в командной строке (в Windows) или на $ запросить в окне терминала запуск оболочки bash (в других вероятных ОС).

Другие вопросы по тегам