라떼군 이야기


VS Code Python 확장 로딩 멈춤(Reactivating terminals) 및 환경 경로 에러 해결 방법

Problem

VS Code를 최신 버전(v1.92 등)으로 업데이트한 후, Python 확장 프로그램이 제대로 로드되지 않고 상태 표시줄에 “Reactivating terminals…” 메시지와 함께 로딩 스피너만 무한히 돌아가는 현상이 발생합니다. 이때 OUTPUT(출력) > Python 패널을 확인해보면 Failed to resolve env "/path/to/env"와 같은 에러 메시지가 기록되어 있습니다. VS Code를 단순히 껐다 켜는 것으로는 문제가 해결되지 않거나, 잠시 해결되었다가 다시 재발하는 경우가 많습니다.

Background

이 문제는 VS Code Python 확장 프로그램이 설치된 파이썬 인터프리터(가상 환경, Conda 등)를 탐색하고 식별하는 과정에서 발생합니다. 최근 VS Code는 성능 향상을 위해 환경 탐색 로직을 기존의 JavaScript 기반에서 Native(Rust/C++ 기반) 방식으로 변경했습니다. 그러나 특정 OS 환경(Linux, WSL)이나 특정 경로(Conda 환경 등)를 해석할 때 Native Locator가 권한 문제나 경로 파싱 오류를 일으켜 초기화 단계에서 멈추는 버그가 존재합니다. 이로 인해 확장 프로그램이 준비 상태로 넘어가지 못하고 무한 로딩에 걸리게 됩니다.

Solution

이 문제를 해결하기 위한 두 가지 주요 방법을 소개합니다. 첫 번째 방법이 가장 확실한 해결책이며, 두 번째 방법은 임시 조치로 유용합니다.

방법 1: Python Locator 설정을 ‘js’로 변경 (권장)

문제가 되는 Native 탐색기 대신, 안정적인 기존 JavaScript 탐색기를 사용하도록 설정을 변경하는 방법입니다.

  1. VS Code에서 Ctrl + , (Mac은 Cmd + ,)를 눌러 **Settings(설정)**를 엽니다.
  2. 검색창에 Python Locator를 입력합니다.
  3. Python > Locator 항목의 값을 native에서 js로 변경합니다.
  4. VS Code를 재시작합니다.

만약 settings.json 파일을 직접 수정하고 싶다면 아래 코드를 추가하세요.

// settings.json 파일에 추가
{
    // Python 인터프리터 탐색 방식을 JavaScript 기반으로 강제 설정
    "python.locator": "js"
}

방법 2: Python 확장 캐시 초기화

설정 변경 없이 캐시 문제일 가능성을 배제하기 위해 시도해볼 수 있는 방법입니다.

  1. Ctrl + Shift + P (Mac은 Cmd + Shift + P)를 눌러 Command Palette를 엽니다.
  2. Python: Clear Cache를 검색합니다.
  3. Python: Clear Cache and Reload Window 옵션을 선택합니다.

이 명령은 Python 확장 프로그램이 저장해 둔 인터프리터 경로 캐시를 삭제하고 창을 새로 고침합니다. 이 방법으로 해결된다면 native 설정을 유지하면서 사용할 수 있습니다.

결과 확인

위 조치 후 VS Code를 재시작하면 상태 표시줄의 “Reactivating terminals…” 문구가 사라지고, Python 인터프리터 버전이 정상적으로 표시되는 것을 확인할 수 있습니다.

Deep Dive

왜 ‘js’로 바꾸면 해결되나요? native Locator는 대규모 프로젝트나 많은 가상 환경이 있는 시스템에서 더 빠른 탐색 속도를 제공하기 위해 도입되었습니다. 하지만 아직 초기 단계라 특정 파일 시스템 경로나 권한 처리에서 예외 상황(Edge Case)을 완벽히 처리하지 못하는 경우가 있습니다. js 설정은 속도는 약간 느릴 수 있지만, 수년 동안 검증된 레거시 방식이므로 안정성이 높습니다.

주의사항 추후 VS Code Python 확장이 업데이트되어 해당 버그가 수정된다면, 다시 native로 설정을 되돌리는 것이 성능상 유리합니다. 따라서 이 해결책은 일종의 ‘우회로(Workaround)‘로 생각하고, 몇 달 뒤 업데이트가 진행되었을 때 기본값(native)으로 테스트해보는 것을 권장합니다.

Conclusion

VS Code 업데이트 후 Python 확장이 무한 로딩에 걸린다면, 이는 새로운 Native 환경 탐색기의 버그일 가능성이 높습니다. 가장 효과적인 해결책은 설정에서 Python Locatorjs로 변경하여 안정적인 레거시 탐색 방식을 사용하는 것입니다. 캐시 초기화로도 해결되지 않는다면 설정 변경을 통해 쾌적한 개발 환경을 복구하세요.

References

Open to collaboration Get in touch →