Я пытаюсь отлаживать CLI Python, я написал, что может принимать его аргументы от stdin. Простой тест будет иметь выходКак отлаживать CLI python, который принимает stdin?
echo "test" | python mytool.py
быть эквивалентен выходом
python mytool.py test
я хотел бы отладить некоторые проблемы с этим инструментом, поэтому я попытался запустить это:
echo "test" | pdb mytool.py
Но я получаю этот выход, то PDB выходы:
> /path/to/mytool.py(5)<module>()
-> '''
(Pdb) *** NameError: name 'test' is not defined
(Pdb)
То же самое происходит, когда я добавляю -m python
в shebang, и если я запускаю pdb.set_trace()
внутри скрипта.
Что здесь происходит?
Можете изменить сценарий, чтобы принимать входные данные из файла, отличного от stdin? – nmichaels
Возможный дубликат [Python CLI program unit testing] (http://stackoverflow.com/questions/13493288/python-cli-program-unit-testing) –
@ user1901786 Как вы получаете доступ к stdin в скрипте CLI? Использование 'sys.stdin'? Кроме того, вы просто хотите написать тест для этого или вам нужно запустить отладчик в скрипте? Если вам нужен отладчик, в какой момент вы хотите, чтобы он задействовал сценарий? Извините, вопрос для меня немного неясен. – famousgarkin