참고자료1 : VSCode 공식문서
참고자료2 : pytest 활용?
Error1
내용
평소에 하던대로 VSCode GUI상에서 초록색 재생버튼으로 디버그 실행하니 프로젝트 내에 만들어준 패키지와 모듈을 인식하지 못함
해결
참고자료1 보고 성공!
- Step.1 작업경로 내에서 다음과 같은 스크립트를 실행한다. (실행하자마자 일시정지됨)
python -m debugpy --listen 5678 --wait-for-client -m pytorchyolo.test_tmp
- Step.2 설정버튼을 눌러 launch.json파일을 열어준다.
- Step.3 기존 configurations에 다음과 같은 요소를 복붙하여 디버그 설정을 추가로 생성한다.
{ "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } }
- Step.4 위에서 추가한 디버그 설정을 불러온다.
- Step.5 실행버튼을 누르면 Step.1에서 일시정지 상태였던 스크립트가 실행된다.
더 쉬운 해결법이 있을 것 같으니 시간이 되면 더 찾아보자.
python 실행시 -m 옵션의 의미
(해당 링크의 댓글에 -m옵션 적용시 sys.path에 들어가는 옵션이 달라진다는 내용도 확인)
sys.path란?
※ 참고
python -m debugpy --listen | --connect [<host>:]<port> [--wait-for-client] [--configure-<name> <value>]... [--log-to <path>] [--log-to-stderr] <filename> | -m <module> | -c <code> | --pid <pid> [<arg>]...
필수 속성
- --listen : debugpy로 실행할 디버그 프로세스를 VSCode에 연결하기 위해 호스트와 포트를 설정 (호스트의 디폴트값은 127.0.0.1)
- 실행할 객체 지정
<filename> : 경로+파일 형태로 입력 ( dir/file.py )
-m <module> : 패키지+모듈(확장자 표기를 제거한 파일명) 형태로 입력 ( package.file )선택 속성
- --wait-for-client : VSCode GUI상에서 초록색 재생버튼을 누를때 까지 스크립트를 실행시키지 않고 기다림