VSCode 파이썬 디버깅 설정 오류 해결, 중단점을 찍고 F5를 눌렀지만 콘솔에 아무런 반응이 없거나 'Launch configuration not found'라는 불투명한 메시지만 띄워주며 한숨 쉬고 있는 상황입니다. 이러한 문제는 대부분 VSCode가 사용하려는 파이썬 인터프리터와 실제 프로젝트 환경이 일치하지 않거나, 디버깅 구성 파일인 launch.json의 경로 설정이 꼬였기 때문에 발생합니다. 이 글에서는 VSCode 파이썬 디버깅 설정 오류 해결을 위해 반드시 확인해야 할 인터프리터 선택, launch.json 구성, 가상 환경 연결의 3가지 핵심 요소를 구체적인 명령어와 시나리오로 분석하여 해결책을 제시합니다.
함께 보면 좋은 글: 맥북 M4 성능 2026 최적화, 느려짐 방지
- VSCode 우측 하단의 인터프리터 선택기가 프로젝트의 가상 환경을 정확히 가리키고 있는지 확인합니다.
- launch.json 파일 내 'program' 경로와 'console' 속성이 현재 작업 중인 파일과 터미널 환경에 맞게 설정되었는지 점검합니다.
- 터미널에 가상 환경이 자동으로 활성화되지 않을 때 수동으로 스크립트를 실행하여 디버거가 의존성을 인식하도록 합니다.
VSCode에서 파이썬 디버깅이 안 될 때, 인터프리터 선택, 디버거 유형, launch.json 설정 3가지를 점검하면 문제를 95% 이상 해결할 수 있다.
인터프리터 경로 불일치: 가장 흔한 원인 분석
VSCode가 파이썬 코드를 실행할 때 가장 기본적으로 참조하는 정보는 인터프리터의 경로입니다. 사용자가 pip install 명령어로 라이브러리를 설치한 가상 환경(virtual environment)과 VSCode가 참조하는 시스템 기본 파이썬이 다르면, 디버깅 시 ModuleNotFoundError가 발생하거나 중단점이 무시됩니다. 예를 들어, 프로젝트 폴더 내 venv 폴더에 requests 라이브러리를 설치했는데, VSCode가 /usr/bin/python3를 사용하도록 설정되어 있다면 디버거는 해당 모듈을 찾지 못해 즉시 종료됩니다. 이러한 경로 불일치 문제는 OS 업데이트나 새로운 파이썬 버전 설치 시 시스템 PATH가 변경되면서 발생하는 경우가 가장 많습니다.
특히 팀 프로젝트나 여러 프로젝트를 병행할 때, 전역 설치된 패키지와 로컬 프로젝트의 의존성이 섞이면 디버깅 결과를 신뢰할 수 없게 됩니다. '내 로컬에서는 잘 되는데 왜 안 되지?'라는 의문은 대부분 이 인터프리터 경로 오류에서 기인합니다. 따라서 프로젝트를 처음 열거나 디버깅 오류가 발생했을 때는 가상 환경 내의 파이썬 실행 파일이 VSCode에서 선택되었는지 확인하는 것이 선행되어야 합니다. 터미널에서 which python이나 where python 명령어로 현재 경로를 확인하고, 이것이 VSCode 하단 상태바에 표시된 경로와 일치하는지 비교하는 습관을 들이는 것이 좋습니다.
이 문제를 해결하기 위해서는 VSCode의 명령 팔레트를 통해 인터프리터를 명확하게 지정해야 합니다. 윈도우나 리눅스 사용자는 Ctrl+Shift+P, 맥 사용자는 Cmd+Shift+P를 눌러 'Python: Select Interpreter'를 입력하고 실행합니다. 목록에 가상 환경이 나타나지 않는다면 'Enter interpreter path...'를 선택하여 수동으로 ./venv/bin/python 또는 .\venv\Scripts\python.exe 경로를 지정해야 합니다. Python 공식 문서에서도 모듈 격리를 위해 프로젝트별 가상 환경 사용을 강력히 권장하며, 이는 디버깅 안정성의 필수 조건입니다.
현재 선택된 인터프리터는 VSCode 화면 하단 상태바(파란색 글씨)에서 확인할 수 있습니다. 여기에 표시된 버전이 프로젝트에서 의도한 파이썬 3.10 이상인지 반드시 확인하십시오. 상태바를 클릭하면 즉시 인터프리터 선택창이 다시 뜹니다.
명령 팔레트 실행
Ctrl+Shift+P(맥: Cmd+Shift+P)를 누르고 'Python: Select Interpreter' 입력
환경 목록 스캔
검색 결과 목록에서 프로젝트 폴더 내의 'venv' 또는 '.venv' 항목을 찾습니다.
적절한 환경 선택
목록에서 가상 환경으로 표시된 항목 선택 (없으면 'Find...'를 눌러 직접 경로 지정)
경로 수동 입력(선택 사항)
자동 검색이 안 될 경우, 파일 탐색기를 통해 가상 환경 내 python 실행 파일까지 직접 탐색하여 선택합니다.
터미널 검증
새 터미널을 열어 프롬프트 앞에 (venv)가 표시되는지 확인하고 python --version으로 일치 여부를 최종 점검합니다.
재시작
인터프리터 변경 후 디버깅 창을 닫았다가 다시 실행하여 변경 사항 적용
- 현재 활성화된 인터프리터가 가상 환경(venv) 내부에 위치합니까?
- 터미널에서 실행된
pip list결과와 프로젝트의requirements.txt가 일치합니까? - VSCode 상태바에 표시된 파이썬 버전이 프로젝트 요구 사항(예: 3.9+)을 충족합니까?
Photo by Daniil Komov on Pexels
launch.json 파일 구성: 경로와 인자 설정 미스 해결
인터프리터가 올바르게 설정되었다면 다음으로 살펴볼 부분은 디버깅 구성 파일인 launch.json입니다. 이 파일은 .vscode 폴더 내에 위치하며, 디버거가 어떤 파일을 시작점으로 삼을지, 어떤 인자를 넘겨줄지를 정의합니다. 많은 사용자가 "program": "${file}" 설정을 그대로 두고, 하위 폴더에 있는 파일을 열고 디버깅을 시도하여 상대 경로 오류를 겪습니다. 특히 src 폴더 안의 main.py를 실행할 때, 작업 디렉터리가 루트가 아니라 src로 잡히면서 데이터 파일을 찾지 못하는 경우가 빈번합니다.
또한, launch.json에는 단순히 파일 경로뿐만 아니라 디버거의 동작 방식을 제어하는 다양한 옵션이 존재합니다. 예를 들어 "justMyCode": true(기본값)로 설정되어 있으면, 사용자가 작성한 코드에서만 중단점이 작동하고 외부 라이브러리 내부로는 스텝 인(Step Into) 할 수 없습니다. 라이브러리 내부 동작을 추적해야 하는 디버깅 상황이라면 이 옵션을 false로 변경해야 합니다. 또한, 환경 변수가 필요한 애플리케이션의 경우 "env" 속성을 통해 키-값 쌍을 전달하여 OS 레벨의 설정을 주입할 수 있습니다.
이를 해결하려면 launch.json을 열어 "program" 속성을 "${workspaceFolder}/main.py"와 같이 워크스페이스 루트 기준의 절대 경로 형태로 수정하는 것이 좋습니다. 또한, 외부 인자가 필요한 스크립트라면 "args" 배열에 값을 추가해야 합니다. VSCode 1.85 버전 이상에서는 디버그 버튼 옆의 'Add Configuration...' 기능을 통해 템플릿을 자동으로 생성할 수 있으므로, 수동 입력으로 인한 오타를 줄이는 데 활용하십시오. 특히 "cwd"(Current Working Directory) 설정은 상대 경로를 사용하는 파일 입출력 작업에서 필수적이므로, 프로젝트 루트를 가리키도록 명시적으로 설정하는 것이 오류를 방지하는 지름길입니다.
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/src/main.py",
"console": "integratedTerminal",
"args": ["--mode", "dev"],
"cwd": "${workspaceFolder}",
"env": {
"MY_API_KEY": "test_key_123"
},
"justMyCode": false
}
]
}
"console": "internalConsole"로 설정되면 입력이 불가능한 VSCode 내부 콘솔을 사용하게 되어, input() 함수가 포함된 코드는 디버깅 중 멈추게 됩니다. 반드시 "integratedTerminal" 또는 "externalTerminal"을 사용하여 터미널 입출력이 가능하도록 설정하십시오.
실행 및 디버그 탭 열기
사이드바에서 디버그 아이콘을 클릭하거나 Ctrl+Shift+D를 누릅니다.
launch.json 생성
'launch.json 파일 만들기' 링크를 클릭하고 환경 선택 창에서 'Python File'을 선택합니다.
program 경로 수정
"program": "${file}"을 "${workspaceFolder}/폴더/파일명.py"으로 변경하여 루트 기준 경로로 수정합니다.
작업 디렉터리(cwd) 설정
파일 입출력 경로 오류 방지를 위해 "cwd": "${workspaceFolder}" 항목을 추가하거나 확인합니다.
인자 및 환경 변수 추가
"args"와 "env" 필드에 필요한 값을 JSON 형식으로 입력합니다.
구성 저장 및 테스트
파일을 저장(Ctrl+S)하고 F5를 눌러 디버깅이 정상 시작되는지 확인합니다.
동영상으로 보는 VSCode 파이썬 디버깅 설정 오류 해결
글로 충분하지 않다면 관련 영상을 함께 보세요. 클릭하면 YouTube에서 검색 결과로 이동합니다.
자주 묻는 질문
Q. VSCode에서 파이썬 디버거가 전혀 실행되지 않아요. 가장 먼저 확인해야 할 설정은 무엇인가요?
A. 먼저 `launch.json` 파일이 올바르게 생성됐는지 확인하고, `program` 경로가 현재 실행하려는 파이썬 파일을 가리키는지 점검하세요. 또한 Python 확장 프로그램이 최신 버전인지, `pythonPath` 혹은 `interpreterPath`가 올바른 가상환경을 가리키는지도 확인해야 합니다.
Q. 디버깅 시 "No module named 'xxx'" 오류가 뜹니다. 어떻게 해결할 수 있나요?
A. 이 오류는 디버거가 실행 중인 인터프리터와 프로젝트가 사용하는 가상환경이 다를 때 발생합니다. VSCode 좌측 하단의 Python 인터프리터 선택 메뉴에서 올바른 가상환경을 선택하거나, `launch.json`에 `env` 항목으로 `PYTHONPATH`를 명시적으로 지정하면 해결됩니다.
Q. 브레이크포인트가 무시되고 코드가 바로 실행돼요. 브레이크포인트가 작동하도록 하려면?
A. 브레이크포인트가 작동하려면 디버그 구성이 `justMyCode`를 `false`로 설정하거나, `debugpy`가 최신 버전인지 확인하세요. 또한 파일이 저장되지 않은 상태라면 최신 코드가 로드되지 않을 수 있으니 저장 후 다시 실행해 보세요.
Q. 디버깅 중 콘솔 출력이 안 보이는데, 콘솔 창을 어떻게 설정해야 하나요?
A. `launch.json`의 `console` 옵션을 `integratedTerminal` 또는 `externalTerminal`로 바꾸면 VSCode 내부 터미널에 출력이 나타납니다. `internalConsole`으로 설정하면 디버그 콘솔에만 출력되므로, 원하는 출력 형태에 맞게 옵션을 조정하세요.
함께 읽으면 좋은 글
