Я хочу включить отладку с помощью средства отладки Visual Studio, ptvsd
.Используя это, я должен присоединить отладчик к приложению, используя
ptvsd.enable_attach(address=(settings.REMOTE_URL, settings.DEBUG_PORT), redirect_output=True)
ptvsd.wait_for_attach()
Использование ptvsd означает, что я не могу использовать многопоточность и перезагрузку, поэтому я добавляю аргументы
sys.argv.append("--nothreading")
sys.argv.append("--noreload")
Для удобствавключить отладку Я создал аргументы для выполнения этих строк кода.Я создал именованный аргумент debug
if __name__ == "__main__":
#previous line omitted
parser = argparse.ArgumentParser()
parser.add_argument("--debug", help="enable debugging through vscode")
args = parser.parse_args()
if args.debug:
sys.argv.append("--nothreading")
sys.argv.append("--noreload")
ptvsd.enable_attach(address=(settings.REMOTE_URL, settings.DEBUG_PORT), redirect_output=True)
ptvsd.wait_for_attach()
execute_from_command_line(sys.argv)
То, чего я хочу добиться, - это когда я хочу отладить свое приложение, я использую команду python manage.py runserver 0:8000 --enable-debugging
, а когда я просто хочу запустить свое приложение, я использую python manage.py runserver 0:8000
, но он возвращает ошибку, когда я пытался запустить с использованием python manage.py runserver 0:8000
, он сообщает нераспознанные аргументы для runserver
и 0:8000
, нужно ли мне включать все возможные djangoпозиционный аргумент parser
?и как это сделать с 0:8000
?добавить все возможные порты?Является ли использование именованного аргумента нежизнеспособным для этого случая?