Проблемы при попытке использовать 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 (в других вероятных ОС).