Я хотел бы отладить расширение, написанное для Sphinx, в интерактивном режиме, используя pdb
, которое отлично работает для простых скриптов. Когда я выполняю sphinx-build -M html . _build
, я получаю ValueError
. Итак, чтобы отладить его, я написал:
ipython3 $(which sphinx-build) --pdb -- -M html . _build
К сожалению, я не получаю полную трассировку, только ту из основного скрипта sphinx-build
:
$ ipython3 $(which sphinx-build) --pdb -- -M html . _build
Running Sphinx v3.1.2
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/sphinx/config.py", line 319,
in eval_config_file
execfile_(filename, namespace)
File "/usr/local/lib/python3.6/dist-packages/sphinx/util/pycompat.py", line 88,
in execfile_
exec(code, _globals)
File "/home/canard/test-sphinx/conf.py", line 17, in <module>
raise ValueError()
ValueError
---------------------------------------------------------------------------
SystemExit Traceback (most recent call last)
/usr/local/bin/sphinx-build in <module>()
9 if __name__ == '__main__':
10 sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
---> 11 sys.exit(main())
SystemExit: 2
> /usr/local/bin/sphinx-build(11)<module>()
7 from sphinx.cmd.build import main
8
9 if __name__ == '__main__':
10 sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
---> 11 sys.exit(main())
ipdb>
Как я могу увидеть полная трассировка?
Я попытался упростить случай, добавив raise ValueError()
в conf.py
. Поэтому для воспроизведения просто создайте новый проект сфинкса с sphinx-quickstart
, измените conf.py
и добавьте исключение. При такой настройке возникает та же проблема. Отладчик останавливается на sys.exit(main())