vscode python 실행 경로 설정하기, launch.json 수정하기
ROS를 사용할 때 대부분 vscode에서 코드를 작성하기는 했지만 실행은 대부분 terminal에서 사용을 하다보니 문제가 없었는데
정작 vscode에서 실행을 하다보면 연관된 파일들의 경로를 잘 못찾는 경우가 많았다.
특히 docker 환경을 쓰게되면 더더욱 경로가 꼬이는 경우가 많았고 실행을 하면 파일이 없다고 자꾸 말한다.(젠장)
초반에 뭐가 잘못되어있는지 잘 몰라서 엄청 헤맸던 기억이 난다.
vscode가 어떻게 동작하는지 알면 쉽게 해결된다.
예를 들어 위와 같이 폴더 및 파일을 구성했다고 해보자.
Desktop / folder_1 / folder_1_1 / test_1_1.py
로 구성을 했고 test_1_1.py 파일을 실행한다고 해보자.
그리고 현재 경로를 확인하기 위해 os.getcwd() 를 출력하면 다음과 같다.
python에서 현재 실행 경로 확인하기
터미널에서 현재 파일이 실행이 되는 경로를 확인하는 방법 간혹 vscode와 같이 interpreter를 사용할 경우 파일이 실행되는 경로와 interpreter에서 설정된 경로가 다른 경우가 종종 발생한다. 이때 현
barrer.tistory.com
현재 실행하고 있는 파일의 경로는 /home/eddy/Desktop/folder_1/folder_1_1/test_1_1.py 인데 정작 현재 경로를 출력해보니
/home/eddy/Desktop 가 나온다. (당황)
이는 vscode에서 처음 폴더를 열었을 경우 그때의 최상위 폴더 기준으로 설정되기 때문이다.
이를 위해서 우측에 Run and Debug 를 설정해주면 된다. 삼각형과 벌레 모양이 있는 아이콘을 클릭하면 다음과 같이 나온다.
여기서 create a launch.json file 이라고 적힌 글자를 클릭하면 다음과 같은 선택창이 열린다.
Debug Configuration 이라고 나오면 Python File 을 선택한다.
그러면 다음과 같은 launch.json 파일이 열린다.
여기에 다음과 같은 코드를 추가한다.
"cwd": "${fileDirname}"
윗 줄에 콤마 빼먹지 말 것!
이렇게 수정을 한 다음 저장을 하고 아까의 파일을 다시 실행해보자.
기존에는 현재 경로를 os.getcwd()를 이용해 출력했을 때
/home/eddy/Desktop 라고 나왔다면, launch.json 파일을 수정했더니
/home/eddy/Desktop/folder_1/folder_1_1 와 같이 실제 파일이 있는 경로로 수정된 것을 볼 수 있다.
별것 아닌데 모르면 정말 고통스러운 부분이다!