티스토리 뷰
문제 현상
Visual Studio Code를 통해 외부 원격 서버에 remote-ssh플러그인을 통해 접속하여 코드 접근을 하고 실행하는 환경에서
코드를 작성하고 디버그 모드로 실행 시키는데 코드내 기술된 파일/폴더 경로가 코드파일이 존재하는 경로 기준이 아니라 접속 시 루트 폴더 기준으로 경로명이 잡혀 오류가 발생함
사례 중에 하나로 다음과 같이 pytorch 코드를 실행하는 경우 데이터 폴더(data)가 없는 경우 데이터를 다운로드 받고 폴더가 생성되고 있는 경우 해당 데이터 폴더를 이용하는 식으로 코드 구성이 되어 있다.
...
training_data = datasets.FashionMNIST(
root="data",
train=True,
download=True,
transform=ToTensor()
)
...
보통 VS Code의 터미널에서 python test.py 같이 직접 실행 시키면 파일 기준으로 하부 폴더에 data폴더가 생성된다.
그런데 디버그 모드(F5)로 실행하는 경우 접속한 루트 경로 기준으로 data 폴더가 생성된다.
코드와 경로 구조가 분리되어 문제 없이 실행되는 경우도 있겠으나 대부분 파일을 찾지 못해 오류를 보이게 된다.
해결 책: 코드 시작 경로를 실행 파일 기준으로 옮기기
디버깅 모드 실행시 입력 인자(argument)등을 미리 등록해두는 방법으로 vscode 설정 파일 중에 launch.json에 필요한 세팅을 해주면 되는 것을 알게 되었다.
디버그 모드로 실행시 내부에서 살펴보는 파일로 configuration 태그 안에 다음 키/값을 추가한다.
"cwd": "${fileDirname}"
launch.json 폴더에 다음과 같이 추가한 결과를 참고하면 된다.
{
"version": "0.2.0",
"configurations": [
{
"name": "Python 디버거: 현재 파일",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "${fileDirname}"
}
]
}
이 파일은 생성되어 있는 경우 .vscode 폴더에 생성되어 있으니 찾아거나 다음과 같이 디버그 아이콘을 누르고 나오는 디버그 모드 화면에서 톱니바퀴 아이콘을 클릭하면 파일을 열어 편집이 가능하다.

'Programming' 카테고리의 다른 글
VS Code 에서 AWS EC2 접속하기 (config.js, keypair) (0) | 2024.03.09 |
---|
- Total
- Today
- Yesterday
- ubuntu
- Python
- Arduino
- docker
- Stable Diffusion
- conda
- tensorflow
- nvidia
- ssh
- Fusion360
- 파이썬
- 메이커
- git
- fablab
- CAD
- 한글
- 우분투
- Maker
- MicroBit
- vscode
- 단축키
- 3d프린터
- Streamlit
- vvvv
- cura
- opencv
- comfyUI
- nodejs
- Linux
- WSL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |