Programming

[기타, VS code] 상대 경로 오류, 실행 파일 경로, launch json

남남이루 2022. 9. 1. 14:48

문제 해결 과정

문제 상황 : 파이썬 파일 실행하는데, input 파일 상대 경로를 못 읽어온다.
액션 1 : 기준이 되는 경로를 찾자 print(os.getcwd())
결과 : 예상했던 루트가 아니다, 실행 경로가 상위 폴더로 되어 있다. 
             ➔ 경로 기준은 뭐로 결정되는 걸까?

액션 2 : 출력된 경로를 살펴보니, 켜져있던 터미널 창이 파이썬 파일을 실행할 때 기준이 된다는 것을 알게 됨
액션 3 (해결) : 터미널 경로를 실행파일로 맞춰주고 ctrl + F5 실행하니 성공

추가 개선

추가 문제 상황 : 매 실행파일마다 터미널 경로를 바꿔야 하나?,
                        터미널을 끈 채로 실행할 때, 자동으로 상위 폴더로 설정되어 실행됨
액션 : debug 설정파일인 launch.json의 파라미터 탐색 후 관련 코드 추가 'cwd 이하 생략'
결과 :  터미널을 끄고, 실행하면 자동으로 실행파일 기준으로 상대경로를 탐색한다.

배운점 :

launch.json은 vscode의 디버그, 실행 config 파일이구나. 그리고 터미널 그냥 별개로 생각했는데, 실행할 때 켜둔 터미널을 기준으로 경로가 지정되고.. 이건 사실 실행단축키가 터미널에 python(파이썬 셸 실행명령어) 절대겅로상의 실행파일 을 입력하는 것과 같아서 그랬던 것 같다.


{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "cwd": "${fileDirname}"
    }
  ]
}

참고 : vs code tutorial doc