VS Code의 Python 환경
Python에서 "환경"이란 인터프리터와 설치된 여러 패키지로 구성된 Python 프로그램이 실행되는 컨텍스트를 의미합니다.
참고: Python 프로그래밍 언어에 대해 더 자세히 알고 싶으시면 더 많은 Python 리소스를 검토해 보세요.
Python 환경의 종류
전역 환경
기본적으로 설치된 모든 Python 인터프리터는 자체 전역 환경에서 실행됩니다. 예를 들어, 새 터미널에서 (Python 설치 방법에 따라) python, python3 또는 py를 실행하면 해당 인터프리터의 전역 환경에서 실행되는 것입니다. 설치하거나 제거하는 모든 패키지는 전역 환경 및 해당 환경 내에서 실행하는 모든 프로그램에 영향을 미칩니다.
팁: Python에서는 작업 영역별 환경을 만드는 것이 모범 사례입니다. 예를 들어 로컬 환경을 사용합니다.
로컬 환경
작업 영역을 위해 생성할 수 있는 환경에는 가상 및 conda의 두 가지 유형이 있습니다. 이러한 환경을 사용하면 다른 환경에 영향을 주지 않고 패키지를 설치하여 작업 영역의 패키지 설치를 격리할 수 있습니다.
가상 환경
가상 환경은 환경을 만드는 내장 방식입니다. 가상 환경은 특정 인터프리터의 복사본(또는 심볼릭 링크)을 포함하는 폴더를 만듭니다. 가상 환경에 패키지를 설치하면 이 새 폴더에 저장되어 다른 작업 영역에서 사용하는 다른 패키지와 분리됩니다.
참고: 가상 환경 폴더를 작업 영역으로 열 수는 있지만, 이렇게 하는 것은 권장되지 않으며 Python 확장 사용에 문제가 발생할 수 있습니다.
Conda 환경
conda 환경은 conda 패키지 관리자를 사용하여 관리되는 Python 환경입니다 ( conda 시작하기 참조). conda와 가상 환경 간의 선택은 패키징 요구 사항, 팀 표준 등에 따라 달라집니다.
Python 환경 도구
다음 표는 Python 환경과 관련된 다양한 도구를 나열합니다.
| 도구 | 정의 및 목적 |
|---|---|
| pip | 패키지를 설치하고 업데이트하는 Python 패키지 관리자입니다. Python 3.9+와 함께 기본적으로 설치됩니다 (Debian 기반 OS의 경우 제외. 이 경우 python3-pip 설치). |
| venv | 다른 프로젝트에 대한 별도의 패키지 설치를 관리할 수 있도록 하며 Python 3과 함께 기본적으로 설치됩니다 (Debian 기반 OS의 경우 제외. 이 경우 python3-venv 설치). |
| conda | Miniconda와 함께 설치됩니다. 패키지와 가상 환경을 모두 관리하는 데 사용할 수 있습니다. 일반적으로 데이터 과학 프로젝트에 사용됩니다. |
환경 생성
환경 생성 명령 사용
가상 환경 또는 Anaconda를 사용하여 VS Code에서 로컬 환경을 만들려면 다음 단계를 따르세요. 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))를 열고 Python: Create Environment 명령을 검색하여 선택합니다.
명령은 환경 유형 목록, 즉 Venv 또는 Conda를 표시합니다.

Venv를 사용하여 환경을 만드는 경우, 명령은 새 가상 환경의 기반으로 사용할 수 있는 인터프리터 목록을 표시합니다.

Conda를 사용하여 환경을 만드는 경우, 명령은 프로젝트에 사용할 수 있는 Python 버전 목록을 표시합니다.

원하는 인터프리터 또는 Python 버전을 선택하면 알림에서 환경 생성 진행 상황을 표시하고 환경 폴더가 작업 영역에 나타납니다.

참고: 명령은 프로젝트 폴더에 있는
requirements.txt,pyproject.toml또는environment.yml과 같은 요구 사항/종속성 파일에 명시된 필요한 패키지도 설치합니다. 또한 가상 환경을 실수로 소스 제어에 커밋하는 것을 방지하기 위해 가상 환경에.gitignore파일을 추가합니다.
터미널에서 가상 환경 만들기
가상 환경을 수동으로 만들기로 선택한 경우 다음 명령을 사용합니다 (여기서 ".venv"는 환경 폴더의 이름입니다).
# macOS/Linux
# You may need to run `sudo apt-get install python3-venv` first on Debian-based OSs
python3 -m venv .venv
# Windows
# You can also use `py -3 -m venv .venv`
python -m venv .venv
참고:
venv모듈에 대해 더 알아보려면 Python.org의 가상 환경 생성을 읽어보세요.
새 가상 환경을 만들면 VS Code에 프롬프트가 표시되어 작업 영역에서 선택할 수 있습니다.

팁: 실수로 가상 환경을 커밋하는 것을 방지하기 위해 소스 제어 설정을 업데이트해야 합니다 (예:
.gitignore). 가상 환경은 이식 가능하지 않으므로 일반적으로 다른 사람이 사용할 수 있도록 커밋하는 것은 의미가 없습니다.
터미널에서 conda 환경 만들기
Python 확장은 기존 conda 환경을 자동으로 감지합니다. conda 환경에 Python 인터프리터를 설치하는 것이 좋습니다. 그렇지 않으면 환경을 선택한 후 인터프리터가 설치됩니다. 예를 들어 다음 명령은 Python 3.9 인터프리터와 여러 라이브러리를 사용하여 env-01이라는 conda 환경을 만듭니다.
conda create -n env-01 python=3.9 scipy=0.15.0 numpy
참고: conda 명령줄에 대한 자세한 내용은 Conda 환경을 읽어보세요.
추가 참고 사항
-
VS Code가 실행 중일 때 새 conda 환경을 만드는 경우 Python: Select Interpreter 창의 오른쪽 상단에 있는 새로고침 아이콘을 사용하세요. 그렇지 않으면 환경이 표시되지 않을 수 있습니다.

-
환경이 셸 관점에서 제대로 설정되었는지 확인하려면 Anaconda 프롬프트를 사용하고 원하는 환경을 활성화합니다. 그런 다음
code .명령을 입력하여 VS Code를 시작합니다. VS Code가 열리면 명령 팔레트를 사용하거나 상태 표시줄을 클릭하여 인터프리터를 선택할 수 있습니다. -
VS Code용 Python 확장은 현재 conda
environment.yml파일과 직접 통합되어 있지 않지만, VS Code 자체는 훌륭한 YAML 편집기입니다. -
기본 셸이 PowerShell로 설정된 경우 conda 환경은 VS Code 통합 터미널에서 자동으로 활성화될 수 없습니다. 셸을 변경하려면 통합 터미널 - 터미널 프로필을 참조하세요.
-
활성화를 위해 사용할
conda실행 파일의 경로를 수동으로 지정할 수 있습니다 (버전 4.4 이상). 이렇게 하려면 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))를 열고 Preferences: Open User Settings를 실행합니다. 그런 다음 사용자 설정의 Python 확장 섹션에 있는python.condaPath를 적절한 경로로 설정합니다.
Python 인터프리터 작업
환경 선택 및 활성화
Python 확장은 작업 영역에 가장 적합하다고 판단되는 환경을 찾고 선택하려고 시도합니다. 특정 환경을 선택하려면 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 Python: Select Interpreter 명령을 사용합니다.

참고: Python 확장이 인터프리터를 찾지 못하면 경고를 발행합니다. macOS 12.2 이하에서는 OS에서 설치한 Python 인터프리터를 사용하는 경우에도 경고를 발행하는데, 이는 호환성 문제가 있는 것으로 알려져 있기 때문입니다. 어느 경우든 사용자 설정에서
python.disableInstallationCheck를true로 설정하여 이러한 경고를 비활성화할 수 있습니다.
Python: Select Interpreter 명령은 사용 가능한 전역 환경, conda 환경 및 가상 환경 목록을 표시합니다. (이러한 환경 유형 간의 구분을 포함한 자세한 내용은 확장이 환경을 검색하는 위치 섹션을 참조하세요.) 다음 이미지는 예를 들어 여러 Anaconda 및 CPython 설치와 함께 conda 환경 및 작업 영역 폴더 내에 위치한 가상 환경(env)을 보여줍니다.

참고: Windows에서는 VS Code가 사용 가능한 conda 환경을 감지하는 데 시간이 걸릴 수 있습니다. 해당 프로세스 중에 환경 경로 앞에 "(cached)"가 표시될 수 있습니다. 이 레이블은 VS Code가 해당 환경에 대한 캐시된 정보를 현재 사용 중임을 나타냅니다.
VS Code에서 폴더 또는 작업 영역을 열고 목록에서 인터프리터를 선택하면 Python 확장은 해당 정보를 내부적으로 저장합니다. 이렇게 하면 작업 영역을 다시 열 때 동일한 인터프리터가 사용됩니다.
선택한 환경은 Python 확장 프로그램에서 Python 코드를 실행하기 위해(Python: Run Python File in Terminal 명령 사용), 편집기에서 .py 파일을 열 때 언어 서비스(자동 완성, 구문 검사, 린팅, 포맷팅 등)를 제공하기 위해, 그리고 Terminal: Create New Terminal 명령을 사용하여 터미널을 열 때 사용됩니다. 후자의 경우 VS Code는 선택한 환경을 자동으로 활성화합니다.
팁: 선택한 환경의 자동 활성화를 방지하려면
settings.json파일에"python.terminal.activateEnvironment": false를 추가하세요 (기존 설정의 형제로서 어디에든 배치할 수 있습니다).
팁: 활성화 명령이 "Activate.ps1 is not digitally signed. You cannot run this script on the current system." 메시지를 생성하는 경우, 스크립트 실행을 허용하기 위해 PowerShell 실행 정책을 일시적으로 변경해야 합니다 (PowerShell 설명서의 실행 정책 정보 참조):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
참고: 기본적으로 VS Code는 코드를 디버깅할 때 작업 영역에 선택된 인터프리터를 사용합니다.
launch.json의 디버그 구성에서 다른 경로를 지정하여 이 동작을 재정의할 수 있습니다. 디버깅 환경 선택을 참조하세요.
선택한 인터프리터 버전이 상태 표시줄의 오른쪽 면에 표시됩니다.

상태 표시줄은 인터프리터가 선택되지 않았을 때도 반영합니다.

어느 경우든 상태 표시줄의 이 영역을 클릭하면 Python: Select Interpreter 명령의 편리한 바로 가기가 됩니다.
팁: VS Code가 가상 환경을 인식하는 데 문제가 있으면 문제를 제기해 주세요. 원인을 파악하는 데 도움을 드리겠습니다.
인터프리터 수동 지정
VS Code가 사용하려는 인터프리터를 자동으로 찾지 못하는 경우, 파일 시스템에서 해당 인터프리터를 검색하거나 경로를 수동으로 제공할 수 있습니다.
Python: Select Interpreter 명령을 실행하고 인터프리터 목록 상단에 표시되는 Enter interpreter path... 옵션을 선택하여 수행할 수 있습니다.

그런 다음 Python 인터프리터의 전체 경로를 텍스트 상자에 직접 입력하거나 (예: ".venv/Scripts/python.exe"), Find... 버튼을 선택하고 파일 시스템을 탐색하여 선택하려는 Python 실행 파일을 찾을 수 있습니다.

작업 영역을 처음 열 때 사용될 기본 인터프리터를 수동으로 지정하려면 python.defaultInterpreterPath 설정을 생성하거나 수정할 수 있습니다.
참고:
python.defaultInterpreterPath설정에 대한 변경 사항은 작업 영역에 이미 인터프리터가 선택된 후에는 적용되지 않습니다. 설정 변경은 작업 영역에 대한 초기 인터프리터가 선택되면 무시됩니다.
또한, 모든 Python 애플리케이션에 대한 기본 인터프리터를 설정하려면 사용자 설정에 python.defaultInterpreterPath 항목을 수동으로 추가할 수 있습니다. 이렇게 하려면 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))를 열고 Preferences: Open User Settings를 입력합니다. 그런 다음 사용자 설정의 Python 확장 섹션에 있는 python.defaultInterpreterPath를 적절한 인터프리터로 설정합니다.
확장이 자동으로 환경을 선택하는 방법
인터프리터가 지정되지 않은 경우, Python 확장은 다음 우선 순위에 따라 가장 높은 버전의 인터프리터를 자동으로 선택합니다.
- 작업 영역 폴더 바로 아래에 있는 가상 환경.
- 작업 영역과 관련이 있지만 전역적으로 저장된 가상 환경. 예를 들어, 작업 영역 폴더 외부에 있는 Pipenv 또는 Poetry 환경.
- 전역적으로 설치된 인터프리터. 예를 들어,
/usr/local/bin,C:\\python38등에 있는 인터프리터.
참고: 선택된 인터프리터는 터미널의
python이 참조하는 것과 다를 수 있습니다.
Visual Studio Code가 인터프리터를 자동으로 찾지 못하면 인터프리터를 수동으로 지정할 수 있습니다.
확장이 환경을 검색하는 위치
확장은 다음과 같은 위치에서 인터프리터를 자동으로 검색합니다 (순서 없음).
- 표준 설치 경로 (예:
/usr/local/bin,/usr/sbin,/sbin,c:\\python36등). - 작업 영역 (프로젝트) 폴더 바로 아래에 있는 가상 환경.
python.venvPath설정으로 식별된 폴더에 있는 가상 환경 (일반 Python 설정 참조). 이 폴더에는 여러 가상 환경이 포함될 수 있습니다. 확장은venvPath의 첫 번째 수준 하위 폴더에서 가상 환경을 검색합니다.- virtualenvwrapper의
~/.virtualenvs폴더에 있는 가상 환경. - pyenv, Pipenv 및 Poetry로 생성된 인터프리터.
- virtualenvwrapper에서 사용하는
WORKON_HOME으로 식별된 경로에 있는 가상 환경. conda env list로 찾은 Conda 환경. 인터프리터가 없는 Conda 환경은 선택 시 인터프리터가 설치됩니다.- 작업 영역 폴더 아래의 direnv용
.direnv폴더에 설치된 인터프리터.
환경 및 터미널 창
Python: Select Interpreter를 사용한 후, 해당 인터프리터는 파일을 마우스 오른쪽 버튼으로 클릭하고 Python: Run Python File in Terminal을 선택할 때 적용됩니다. python.terminal.activateEnvironment 설정을 false로 변경하지 않는 한 Terminal: Create New Terminal 명령을 사용할 때 환경이 자동으로 활성화됩니다.
특정 Python 환경이 활성화된 셸에서 VS Code를 시작해도 기본 통합 터미널에서는 해당 환경이 자동으로 활성화되지 않습니다.
참고: PowerShell이 통합 셸로 설정된 경우 conda 환경은 통합 터미널에서 자동으로 활성화할 수 없습니다. 셸을 변경하는 방법에 대해서는 통합 터미널 - 터미널 프로필을 참조하세요.
Python: Select Interpreter 명령으로 인터프리터를 변경해도 이미 열려 있는 터미널 패널에는 영향을 주지 않습니다. 따라서 분할 터미널에서 별도의 환경을 활성화할 수 있습니다. 첫 번째 인터프리터를 선택하고 해당 터미널을 생성한 다음, 다른 인터프리터를 선택하고 터미널 제목 표시줄에서 분할 버튼(⌘\ (Windows, Linux Ctrl+Shift+5))을 사용합니다.
디버깅 환경 선택
기본적으로 디버거는 Python 확장에서 선택한 Python 인터프리터를 사용합니다. 그러나 launch.json의 디버그 구성에 python 속성이 지정된 경우 해당 속성이 우선합니다. 이 속성이 정의되지 않으면 작업 영역에 대해 선택된 Python 인터프리터 경로를 사용하는 것으로 대체됩니다.
디버그 구성에 대한 자세한 내용은 디버깅 구성을 참조하세요.
환경 변수
환경 변수 정의 파일
환경 변수 정의 파일은 environment_variable=value 형식의 키-값 쌍을 포함하는 텍스트 파일이며, #은 주석으로 사용됩니다. 여러 줄 값은 지원되지 않지만 이전에 정의된 환경 변수에 대한 참조는 허용됩니다. 환경 변수 정의 파일은 디버깅 및 도구 실행(린터, 포맷터, IntelliSense, 테스트 도구 포함)과 같은 시나리오에 사용할 수 있지만 터미널에는 적용되지 않습니다.
참고: 환경 변수 정의 파일이 반드시 플랫폼 간 호환되는 것은 아닙니다. 예를 들어 Unix는 환경 변수에서 경로 구분 기호로
:를 사용하는 반면 Windows는;를 사용합니다. 이러한 운영 체제 차이에 대한 정규화가 없으므로 모든 환경 정의 파일이 운영 체제와 호환되는 값을 사용하도록 해야 합니다.
기본적으로 Python 확장은 현재 작업 영역 폴더에서 .env라는 파일을 검색하고 로드한 다음 해당 정의를 적용합니다. 이 파일은 사용자 설정의 기본 항목 "python.envFile": "${workspaceFolder}/.env"로 식별됩니다 (일반 Python 설정 참조). python.envFile 설정을 언제든지 변경하여 다른 정의 파일을 사용할 수 있습니다.
참고: 환경 변수 정의 파일은 환경 변수를 사용할 수 있는 모든 상황에서 사용되는 것은 아닙니다. Visual Studio Code 설명서에서 달리 명시하지 않는 한, 정의에 따라 특정 시나리오에만 영향을 미칩니다. 예를 들어, 확장은 설정 값 확인 시 환경 변수 정의 파일을 사용하지 않습니다.
디버그 구성에는 .env 파일로 기본 설정되는 envFile 속성도 포함됩니다 (디버깅 - 구성 옵션 설정 참조). 이 속성을 사용하면 기본 .env 파일에 지정된 변수를 재정의하는 변수를 디버깅 목적으로 쉽게 설정할 수 있습니다.
예를 들어 웹 애플리케이션을 개발할 때 개발 및 프로덕션 서버 간에 쉽게 전환하고 싶을 수 있습니다. 다른 URL 및 설정을 애플리케이션에 직접 코딩하는 대신 각기 다른 정의 파일을 사용할 수 있습니다. 예를 들어
dev.env 파일
# dev.env - development configuration
# API endpoint
MYPROJECT_APIENDPOINT=https://my.domain.com/api/dev/
# Variables for the database
MYPROJECT_DBURL=https://my.domain.com/db/dev
MYPROJECT_DBUSER=devadmin
MYPROJECT_DBPASSWORD=!dfka**213=
prod.env 파일
# prod.env - production configuration
# API endpoint
MYPROJECT_APIENDPOINT=https://my.domain.com/api/
# Variables for the database
MYPROJECT_DBURL=https://my.domain.com/db/
MYPROJECT_DBUSER=coreuser
MYPROJECT_DBPASSWORD=kKKfa98*11@
그런 다음 python.envFile 설정을 ${workspaceFolder}/prod.env로 설정하고 디버그 구성에서 envFile 속성을 ${workspaceFolder}/dev.env로 설정할 수 있습니다.
참고: 여러 메서드를 사용하여 환경 변수를 지정하는 경우 우선 순서가 있음에 유의하십시오.
launch.json파일에 정의된 모든env변수는python.envFile설정 (사용자 또는 작업 영역)으로 지정된.env파일에 포함된 변수를 재정의합니다. 마찬가지로,launch.json파일에 정의된env변수는launch.json에 지정된envFile에 정의된 환경 변수를 재정의합니다.
PYTHONPATH 변수 사용
PYTHONPATH 환경 변수는 Python 인터프리터가 모듈을 검색해야 하는 추가 위치를 지정합니다. VS Code에서는 터미널 설정을 통해 PYTHONPATH를 설정할 수 있습니다 (terminal.integrated.env.*) 및/또는 .env 파일 내에서 설정할 수 있습니다.
터미널 설정을 사용할 때, PYTHONPATH는 사용자가 터미널 내에서 실행하는 모든 도구와 디버깅과 같이 터미널을 통해 라우팅되는 사용자를 위한 확장의 모든 작업에 영향을 미칩니다. 그러나 이 경우, 린터나 포맷터 사용과 같이 터미널을 통해 라우팅되지 않는 작업을 확장 프로그램이 수행할 때 이 설정은 모듈 조회에 영향을 미치지 않습니다.
다음 단계
- 코드 편집 - Python의 자동 완성, IntelliSense, 포맷팅 및 리팩토링에 대해 알아봅니다.
- 디버깅 - 로컬 및 원격 Python 디버깅 방법을 알아봅니다.
- 테스트 - 테스트 환경을 구성하고 테스트를 검색, 실행 및 디버그합니다.
- 설정 참조 - VS Code의 Python 관련 설정 전체 범위를 살펴봅니다.
더 많은 Python 리소스
- VS Code에서 Python 시작하기 - VS Code에서 코드를 편집, 실행 및 디버깅하는 방법을 배웁니다.
- 가상 환경 및 패키지 (Python.org) - 가상 환경 및 패키지에 대해 자세히 알아봅니다.
- Python 모듈 설치 (Python.org) - Python 모듈을 설치하는 방법을 알아봅니다.
- Python 튜토리얼 (Python.org) - Python 언어에 대해 자세히 알아봅니다.