У меня есть приложение Python-2.7 env Pyramid 1.4, которое я разрабатывал для OS X (10.14.5 на момент написания статьи).После активации env я могу запустить pserve из командной строки и протестировать приложение.Я хочу иметь возможность отладки из VSCode.Я настроил отладчик с настройкой Pyramid в launch.json
:
{
"name": "Python: Pyramid Application",
"type": "python",
"request": "launch",
"args": [
"${workspaceFolder}/development.ini"
],
"pyramid": true,
"jinja": true
}
Каждый раз, когда я запускаю отладчик из VSCode (F5), запускаются все ожидаемые команды, и они выглядят корректно:
$ source /my/app/path/env/bin/activate
$ cd /my/app/path ; env PYTHONIOENCODING=UTF-8 PYTHONUNBUFFERED=1 /my/app/path/env/bin/python /my/home/.vscode/extensions/ms-python.python-2019.4.12954/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 63836 /my/app/path/env/lib/python2.7/site-packages/pyramid-1.4-py2.7.egg/pyramid/scripts/pserve.py /my/app/path/development.ini
Нет ошибок, но команда запуска завершается, и отладчик никогда не активируется.pserve не работает в фоновом режиме.панель инструментов отладки ненадолго появляется в верхней части окна редактора, но затем исчезает менее чем через секунду (так что я думаю, что есть краткие сеансы отладки, которые по какой-то причине заканчиваются)
я пытался изменить параметры в моей разработке.ini, чтобы использовать другой пирамидальный сервер main
[server:main]
; use = egg:waitress#main
use = egg:pyramid#wsgiref
host = 0.0.0.0
port = 6666
без разницы
на страницах Python VSCode очень мало информации.
Я бы хорошо добавил код вфайлы, которые мне нужны для отладки (мой запасной вариант pdb
), но я бы с удовольствием воспользовался преимуществами отладчика VSCode.
Обратите внимание: если я вручную (вместо нажатия клавиши F5)введите
cd /my/app/path ; env PYTHONIOENCODING=UTF-8 PYTHONUNBUFFERED=1 /my/app/path/env/bin/python /my/home/.vscode/extensions/ms-python.python-2019.4.12954/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 63836 /my/app/path/env/lib/python2.7/site-packages/pyramid-1.4-py2.7.egg/pyramid/scripts/pserve.py /my/app/path/development.ini
в терминале - я получаю socket.error: [Errno 61] Connection refused
, я предполагаю, потому что отладчик VSCode уже выключился.
, если я выполняю следующее в том же окне терминала VSCode
/my/app/path/env/lib/python2.7/site-packages/pyramid-1.4-py2.7.egg/pyramid/scripts/pserve.py /my/app/path/development.ini
Мой сервер запускается нормально и обслуживает запросы.так что похоже на что-то связанное с лаунчером ptvsd.
есть идеи?