콘텐츠로 건너뛰기

[Python] VSCode와 Anaconda 연동

VSCode 및 Aanconda 환경

VSCode Extensions

Python, Code Runner

Python extension
Code Runner extension

Anaconda

기본 경로(C:\Users\(username)\anaconda3)에 설치, 별도 env 생성 없이 base env (32bit, 2022.04.19: python 3.9.7)를 사용함.
--> Python path: C:\Users\(username)\anaconda3\python.exe


Python 환경 잡기

Interpreter 선택

Command palette (Ctrl + Shift + P)에서 Python: Select Interpreter > Python 3.9.7 ('base') 선택
또는 오른쪽 아래의 Select Interpreter를 클릭해서 동일하게 진행

Anaconda 환경 설정

하지만 여전히 terminal(Ctrl + `)을 띄워 보면 anaconda 환경을 못잡는다.
기본 terminal이 powershell로 설정되어 있고, conda 환경을 activate하기 위한 스크립트 경로도 아직 안잡혀 있기 때문이다.

Settings(Ctrl + ,)에서
1. terminal.integrated.defaultProfile.windows 검색 > PowerShell에서 Command Prompt로 변경
2. python.condaPath 검색 > C:\Users\(username)\anaconda3\Scripts\conda.exe로 변경

이제 terminal을 띄우면 conda activate base command가 자동으로 들어가면서 conda 환경을 잡는걸 확인할 수 있다.

Powershell에서는 conda 환경을 못잡나? 그건 아닌 것 같은데, anaconda prompt에서 몇가지 추가설정이 필요한 듯 하다. VSCode의 default terminal을 cmd로 바꾸는게 더 간단해서 많이들 이렇게 하는듯함.

Code Runner 설정

Python extension만 설치했다면 위의 설정으로도 충분하지만, code runner를 설치했으면 추가 설정이 필요하다.
settings.json 파일을 열어서 (Settings에서 오른쪽 위의 Open Settings (JSON) 아이콘 클릭, 또는 code-runner.executorMap 검색 후 Edit in settings.json 클릭) 아래와 같이 "python" 부분을 변경한다.

"code-runner.executorMap": {
    "python":  "set PYTHONIOENCODING=utf8 && C:\\Users\\(username)\\anaconda3\\python.exe",
}

set PYTHONIOENCODING=utf8는 한글 출력을 위한 utf8 인코딩 설정이다. 없으면 한글 깨져서 나옴.


어떤 항목을 수정해야 하는지 알고 있다면 아예 처음부터 settings.json을 열어서 편집해도 된다.

{
    "terminal.integrated.defaultProfile.windows": "Command Prompt",
    "python.condaPath": "C:\\Users\\(username)\\anaconda3\\Scripts\\conda.exe",
    "code-runner.executorMap": {
        ...,
        "python": "set PYTHONIOENCODING=utf8 && C:\\Users\\(username)\\anaconda3\\python.exe",
        ...
    }
}

끝.

Share this post!

“[Python] VSCode와 Anaconda 연동”의 2개의 댓글

  1. Code Runner의 Output 창은 read-only라서 입력도 못받고, PyQt5 물려서 실행했을 때 출력이 실시간으로 안나오는 등 일반적인 terminal 동작과 다르다.
    “code-runner.runInTerminal”: True 설정해서 terminal에서 돌도록 변경.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.