Python 설정 참조
Visual Studio Code용 Python 확장은 매우 구성 가능하다. 이 페이지에서는 작업할 수 있는 주요 설정을 설명한다.
VS Code에서 설정 작업에 대한 일반 정보는 사용자 및 작업 공간 설정와 미리 정의된 변수 지원에 대한 정보는 변수 참조를 참조하라.
일반 Python 설정
디버거 설정
일반 디버깅
설정 (python.debugpy.) | 기본값 | 설명 | 참조 |
---|---|---|---|
debugJustMyCode | true | 디버거가 사용자 작성 코드만 단계별로 실행할지를 지정합니다. 비활성화하면 라이 브러리 코드도 단계별로 실행할 수 있습니다. | 디버깅 |
테스트 설정
일반 테스트
설정 (python.testing.) | 기본값 | 설명 | 참조 |
---|---|---|---|
autoTestDiscoverOnSaveEnabled | true | 테스트 파일을 저장할 때 자동으로 테스트 검색을 실행할지를 지정합니다. | 테스트 |
cwd | null | 테스트를 위한 선택적 작업 디렉토리를 지정합니다. | 테스트 |
debugPort | 3000 | unittest 테스트의 디버깅에 사용되는 포트 번호입니다. | 테스트 |
promptToConfigure | true | 잠재적인 테스트가 발견되면 VS Code가 테스트 프레임워크를 구성하라는 메시지를 표시할지를 지정합니다. | 테스트 |
unittest 프레임워크
설정 (python.testing.) | 기본값 | 설명 | 참조 |
---|---|---|---|
unittestArgs | ["-v", "-s", ".", "-p", "*test*.py"] | unittest에 전달할 인수로, 공백으로 구분된 각 최상위 요소는 목록의 개별 항목입니다. | 테스트 |
unittestEnabled | false | unittest가 테스트를 위해 활성화되어 있는지를 지정합니다. | 테스트 |
pytest 프레임워크
설정 (python.testing.) | 기본값 | 설명 | 참조 |
---|---|---|---|
pytestArgs | [] | pytest에 전달할 인수로, 공백으로 구분된 각 최상위 요소는 목록의 개별 항목입니다. pytest-cov가 설치된 상태에서 테스트를 디버깅할 때는 이러한 인수에 --no-cov 를 포함해야 합니다. | 테스트 |
pytestEnabled | false | pytest가 테스트를 위해 활성화되어 있는지를 지정합니다. | 테스트 |
pytestPath | "pytest" | pytest의 경로입니다. pytest가 현재 환경 외부에 있는 경우 전체 경로를 사용하십시오. | 테스트 |
코드 분석 설정
IntelliSense 엔진 설정
참고: 언어 서버 설정을 변경한 적이 없다면 언어 서버는 “기본값” 설정 값에 따라 Pylance로 설정됩니다.
설정 (python.) | 기본값 | 설명 |
---|---|---|
languageServer | Default | 언어 서버의 유형을 정의합니다 (Default, Pylance, Jedi, None). |
Python 언어 서버 설정
Pylance 언어 서버
언어 서버 설정은 python.languageServer
가 Pylance
또는 Default
일 때 적용됩니다. 언어 서버에 문제가 있는 경우 언어 서버 저장소의 문제 해결을 참조하십시오.
설정 (python.analysis.) | 기본값 | 설명 |
---|---|---|
aiCodeActions | true | 특정 AI 지원 코드 작업을 활성화할지 를 지정합니다. GitHub Copilot Chat 확장을 활성화해야 합니다. 허용되는 값은 코드 작업을 키로 하고 부울을 값으로 하는 객체입니다. 키로 사용할 수 있는 코드 작업:
{"implementAbstractClasses": true} |
autoFormatStrings | false | 문자열 내에서 "{"를 입력할 때 자동으로 "f"로 접두사를 추가할지를 지정합니다. |
autoImportCompletions | false | 완성에서 자동 가져오기를 제공할지를 제어합니다. 허용되는 값은 true 와 false 입니다. |
autoIndent | true | Python 코드를 입력할 때 언어 의미에 따라 자동으로 들여쓰기를 조정할지를 지정합니다. 허용되는 값은 true 또는 false 입니다. |
autoSearchPaths | true | 일부 미리 정의된 이름(예: src )에 따라 자동으로 검색 경로를 추가할지를 나타냅니다. 허용되는 값은 true 와 false 입니다. |
completeFunctionParens | false | 함수 완성에 괄호를 추가할지를 지정합니다. 허용되는 값은 true 와 false 입니다. |
diagnosticMode | openFilesOnly | 언어 서버가 문제를 분석할 코드 파일을 지정합니다. 허용되는 값은 workspace 와 openFilesOnly 입니다. |
diagnosticSeverityOverrides | 개별 진단에 대한 심각도 수준을 사용자 정의할 수 있습니다. 각 규칙에 대해 사용 가능한 심각도 수준은 error (빨간 물결선), warning (노란 물결선), information (파란 물결선), 및 none (규칙 비활성화)입니다. 진단 심각도 규칙에 사용할 키에 대한 정보는 아래의 진단 심각도 규칙 섹션을 참조하십시오. | |
exclude | [] | 분석에 포함되지 않아야 하는 디렉토리 또는 파일의 경로입니다. 이는 python.analysis.include 설정 아래에 나열된 디렉토리를 무시하며, 특정 하위 디렉토리를 제외할 수 있습니다. 이 exclude 설정에 나열된 파일은 제외 목록에 없는 소스 파일에 의해 참조/가져오기가 이루어질 경우 여전히 분석에 포함될 수 있습니다. 경로에는 ** (디렉토리 또는 여러 수준의 디렉토리), * (0개 이상의 문자 시퀀스), 또는 ? (단일 문자)와 같은 와일드카드 문자가 포함될 수 있습니다. 제외 경로가 지정되지 않으면 Pylance는 자동으로 다음을 제외합니다: **/node_modules , **/\_\_pycache\_\_ , .git 및 모든 가상 환경 디렉토리. |
extraPaths | [] | 가져오기 해결을 위한 추가 검색 경로를 지정합니다. 여러 경로가 있는 경우 문자열로 지정하고 쉼표로 구분하여 수락합니다. 예: ["path 1","path 2"] . |
importFormat | absolute | 모듈을 자동 가져올 때 기본 형식을 정의합니다. 허용되는 값은 absolute 또는 relative 입니다. |
include | [] | 분석에 포함되어야 하는 디렉토리 또는 파일의 경로입니다. 경로가 지정되지 않으면 Pylance는 작업 공간 루트를 포함하 는 디렉토리를 기본값으로 사용합니다. 경로에는 ** (디렉토리 또는 여러 수준의 디렉토리), * (0개 이상의 문자 시퀀스), 또는 ? (단일 문자)와 같은 와일드카드 문자가 포함될 수 있습니다. |
fixAll | [] | 모두 수정 명령 또는 source.fixAll 코드 작업을 실행할 때 실행할 코드 작업 목록입니다. 이 목록에서 허용되는 값:
|
includeAliasesFromUserFiles | false | 자동 가져오기 제안 및 가져오기 추가 빠른 수정에서 사용자 파일의 별칭 기호를 포함할지를 지정합니다. 비활성화하면 Pylance는 기호가 정의된 위치에서 가져오기 제안을 제공합니다. 활성화하면 기호가 가져온 파일(즉, 별칭)에서도 가져오기 제안을 제공합니다. 허용되는 값은 true 와 false 입니다. |
ignore | [] | 진단 출력(오류 및 경고)이 억제되어야 하는 디렉토리 또는 파일의 경로입니다. 이러한 경로는 포함된 파일 또는 포함된 파일의 전이 폐쇄 내에 있는 경우에도 억제됩니다. 경로에는 ** (디렉토리 또는 여러 수준의 디렉토리), * (0개 이상의 문자 시퀀스), 또는 ? (단일 문자)와 같은 와일드카드 문자가 포함될 수 있습니다. 값이 제공되지 않으면 python.linting.ignorePatterns 의 값(설정된 경우)이 사용됩니다. |
indexing | true | Pylance가 시작 시 사용자 파일과 설치된 타사 라이브러스를 색인화해야 하는지를 지정합니다. 허용되는 값은 true 또는 false 입니다. true 로 설정하면 기본적으로 Pylance는 설치된 패키지의 최상위 기호(즉, package/__init__.py 의 __all__ 에 있는 기호)와 최대 2000개의 사용자 파일의 모든 기호를 색인화합니다. false 로 설정하면 Pylance는 이전에 편집기에서 열리거나 로드된 파일에서 이미 참조되거나 사용된 기호만 표시합니다. |
inlayHints.callArgumentNames | false | 호출 인수 이름에 대한 인레이 힌트를 표시할지를 지정합니다. 허용되는 값은 true 또는 false 입니다. |
inlayHints.functionReturnTypes | false | 함수 반환 유형에 대한 인레이 힌트를 표시할지를 지정합니다. 허용되는 값은 true 또는 false 입니다. |
inlayHints.pytestParameters | false | pytest 픽스처 인수 유형에 대한 인레이 힌트를 표시할지를 지정합니다. 허용되는 값은 true 또는 false 입니다. |
inlayHints.variableTypes | false | 변수 유형에 대한 인레이 힌트를 표시할지를 지정합니다. 허용되는 값은 true 또는 false 입니다. |
languageServerMode | default | 개발 요구에 따라 Pylance의 성능을 최적화하기 위한 미리 정의된 구성을 제공합니다. 허용되는 값은 default 와 light 입니다. default 로 설정하면 언어 서버는 시스템에 과부하를 주지 않고 대부분의 기계에 충분한 기능을 제공합니다. light 로 설정하면 경량 메모리 효율적인 설정이 활성화됩니다. 이 모드는 다양한 기능을 비활성화하여 Pylance가 간소화된 텍스트 편집기처럼 작동하도록 하며, 전체 IntelliSense 기능이 필요하지 않고 Pylance가 가능한 한 리소스 친화적이기를 원하는 사용자에게 적합합니다. 각 모드에 의해 기본 설정 값이 다음과 같이 재정의됩니다: |
logLevel | Error | 언어 서버가 수행할 로깅 수준을 지정합니다. 제공되는 로깅 수준은 Error , Warning , Information , 및 Trace 입니다. |
packageIndexDepths | [] | 패키지별로 색인화할 하위 수준 수를 재정의하는 데 사용됩니다. 기본적으로 최상위 모듈만 색인화됩니다(깊이 = 1). 하위 모듈을 색인화하려면 색인화하려는 각 하위 모듈의 깊이를 1씩 증가시킵니다. 허용되는 값은 {"name": "패키지 이름 (str)", "depth": "스캔할 깊이 (int)", "includeAllSymbols": "모든 기호를 포함할지 여부 (bool)"} 와 같은 객체의 튜플입니다. includeAllSymbols 가 false 로 설정되면 각 패키지의 __all__ 에 있는 기호만 포함됩니다. true 로 설정되면 Pylance는 파일 내의 모든 모듈/최상위 기호 선언을 색인화합니다. 사용 예: [{"name": "sklearn", "depth": 2, "includeAllSymbols": true}, {"name": "matplotlib", "depth": 3, "includeAllSymbols": false}] |
stubPath | ./typings | 사용자 정의 유형 스텁이 포함된 디렉토리의 경로를 지정합니다. 각 패키지의 유형 스텁 파일은 자체 하위 디렉토리에 있어야 합니다. |
typeCheckingMode | off | 수행할 유형 검사 분석의 수준을 지정합니다. 허용되는 값은 off , basic , 및 strict 입니다. off 로 설정하면 유형 검사 분석이 수행되지 않으며, 해결되지 않은 가져오기/변수 진단이 생성됩니다. basic 으로 설정하면 비유형 검사 관련 규칙(모든 규칙이 off 에 포함됨)과 기본 유형 검사 규칙이 사용됩니다. strict 로 설정하면 모든 유형 검사 규칙이 가장 높은 오류 심각도(모든 규칙이 off 및 basic 범주에 포함됨)로 사용됩니다. |
useLibraryCodeForTypes | true | 유형 스텁이 발견되지 않을 때 패키지의 소스 코드를 구문 분석합니다. 허용되는 값은 true 와 false 입니다. |
userFileIndexingLimit | 2000 | Pylance가 작업 공간에서 색인화할 최대 사용자 파일 수를 설정합니다. -1로 설정하면 Pylance는 모든 파일을 색인화합니다. 파일 색인화는 성능 집약적인 작업이라는 점에 유의하십시오. |
진단 심각도 규칙
이 섹션에서는 python.analysis.diagnosticSeverityOverrides
설정을 사용하여 사용자 정의할 수 있는 모든 규칙을 자세히 설명합니다.
{
"python.analysis.diagnosticSeverityOverrides": {
"reportUnboundVariable": "information",
"reportImplicitStringConcatenation": "warning"
}
}
값 | 설명 |
---|---|
reportAssertAlwaysTrue | 'assert' 문에 대한 진단으로, 아마도 항상 참으로 평가될 것입니다. 이는 프로그래밍 오류를 나타낼 수 있습니다. |
reportCallInDefaultInitializer | 기본값 초기화 표현식 내의 함수 호출에 대한 진단입니다. 이러한 호출은 모듈 초기화 시 수행되는 비용이 많이 드는 작업을 숨길 수 있습니다. |
reportConstantRedefinition | 모든 대문자와 밑줄 및 숫자가 포함된 변수 이름을 재정의하려는 시도에 대한 진단입니다. |
reportDuplicateImport | 두 번 이상 가져온 기호 또는 모듈에 대한 진단입니다. |
reportFunctionMemberAccess | 함수에 대한 멤버 접근에 대한 진단입니다. |
reportGeneralTypeIssues | 일반적인 유형 불일치, 지원되지 않는 작업, 인수/매개변수 불일치 등에 대한 진단입니다. 이는 다른 규칙에 의해 다루어지지 않는 모든 기본 유형 검사 규칙을 포함합니다. 구문 오류는 포함되지 않습니다. |
reportImportCycles | 순환 가져오기 체인에 대한 진단입니다. 이는 Python에서 오류가 아니지만 유형 분석 속도를 늦추고 종종 아키텍처 레이어링 문제를 나타냅니다. 일반적으로 피해야 합니다. |
reportImplicitStringConcatenation | 서로 뒤따르는 두 개 이상의 문자열 리터럴에 대한 진단으로, 암시적 연결을 나타냅니다. 이는 나쁜 관행으로 간주되며 종종 누락된 쉼표와 같은 버그를 숨깁니다. |
reportIncompatibleMethodOverride | 기본 클래스의 동일한 이름의 메서드를 호환되지 않는 방식으로 재정의하는 메서드에 대한 진단입니다(잘못된 매개변수 수, 호환되지 않는 매개변수 유형 또는 호환되지 않는 반환 유형). |
reportIncompatibleVariableOverride | 기본 클래스의 동일한 이름의 기호를 호환되지 않는 유형으로 재정의하는 클래스 변수 선언에 대한 진단입니다. |
reportInvalidStringEscapeSequence | 문자열 리터럴 내에서 사용된 잘못된 이스케이프 시퀀스에 대한 진단입니다. Python 사양에 따르면 이러한 시퀀스는 향후 버전에서 구문 오류를 발생시킵니다. |
reportInvalidStubStatement | 스텁 파일 내에 나타나서는 안 되는 문에 대한 진단입니다. |
reportInvalidTypeVarUse | 함수 시그니처에서 유형 변수를 잘못 사용한 경우에 대한 진단입니다. |
reportMissingImports | 해당하는 가져오기 Python 파일 또는 유형 스텁 파일이 없는 가져오기에 대한 진단입니다. |
reportMissingModuleSource | 해당하는 소스 파일이 없는 가져오기에 대한 진단입니다. 이는 유형 스텁이 발견되었지만 모듈 소스 파일이 발견되지 않았음을 나타내며, 이 실행 환경에서 코드를 사용할 때 런타임 오류가 발생할 수 있습니다. 유형 검사는 유형 스텁을 사용하여 수행됩니다. |
reportMissingTypeArgument | 명시적 또는 암시적 유형 인수를 제공하지 않고 제네릭 클래스를 사용할 때에 대한 진단입니다. |
reportMissingTypeStubs | 해당하는 유형 스텁 파일이 없는 가져오기에 대한 진단입니다(타입셰드 파일 또는 사용자 정의 유형 스텁). 유형 검사기는 최상의 분석 작업을 수행하기 위해 유형 스텁이 필요합니다. |
reportOptionalCall | 선택적 유형의 변수를 호출하려는 시도에 대한 진단입니다. |
reportOptionalContextManager | 선택적 유형을 컨텍스트 관리자(즉, with 문에 대한 매개변수)로 사용하려는 시도에 대한 진단입니다. |
reportOptionalIterable | 선택적 유형을 반복 가능한 값(예: for 문 내에서)으로 사용하려는 시도에 대한 진단입니다. |
reportOptionalMemberAccess | 선택적 유형의 변수의 멤버에 접근하려는 시도에 대한 진단입니다. |
reportOptionalOperand | 선택적 유형을 이항 또는 단항 연산자(예: '+', '==', 'or', 'not')의 피연산자로 사용하려는 시도에 대한 진단입니다. |
reportOptionalSubscript | 선택적 유형의 변수를 인덱싱(서브스크립트)하려는 시도에 대한 진단입니다. |
reportPrivateUsage | 비공식 또는 보호된 변수 또는 함수의 잘못된 사용에 대한 진단입니다. 보호된 클래스 멤버는 단일 밑줄 _ 로 시작하며 하위 클래스에서만 접근할 수 있습니다. 비공식 클래스 멤버는 이중 밑줄로 시작하지만 이중 밑줄로 끝나지 않으며 선언된 클래스 내에서만 접근할 수 있습니다. 클래스 외부에 선언된 변수와 함수는 이름이 단일 또는 이중 밑줄로 시작하면 비공식으로 간주되며 선언된 모듈 외부에서 접근할 수 없습니다. |
reportPropertyTypeMismatch | setter에 전달된 값의 유형이 getter에서 반환된 값의 유형과 일치하지 않는 속성에 대한 진단입니다. 이러한 불일치는 속성이 변수처럼 작동하도록 설계된 의도를 위반합니다. |
reportSelfClsParameterName | 인스턴스 메서드에서 누락되었거나 잘못된 이름의 "self" 매개변수와 클래스 메서드에서 "cls" 매개변수에 대한 진단입니다. 메타클래스(“type”에서 파생된 클래스)의 인스턴스 메서드는 인스턴스 메서드에 대해 "cls"를 사용할 수 있습니다. |
reportUndefinedVariable | 정의되지 않은 변수에 대한 진단입니다. |
reportUnboundVariable | 바인딩되지 않은 변수 및 아마도 바인딩되지 않은 변수에 대한 진단입니다. |
reportUnknownArgumentType | 함수 또는 메서드의 호출 인수가 알 수 없는 유형인 경우에 대한 진단입니다. |
reportUnknownLambdaType | 알 수 없는 유형의 입력 또는 반환 매개변수에 대한 진단입니다. |
reportUnknownMemberType | 알 수 없는 유형의 클래스 또는 인스턴스 변수에 대한 진단입니다. |
reportUnknownParameterType | 함수 또는 메서드의 입력 또는 반환 매개변수가 알 수 없는 유형인 경우에 대한 진단입니다. |
reportUnknownVariableType | 알 수 없는 유형의 변수에 대한 진단입니다. |
reportUnnecessaryCast | 정적으로 불필요한 것으로 판단되는 'cast' 호출에 대한 진단입니다. 이러한 호출은 때때로 프로그래밍 오류를 나타냅니다. |
reportUnnecessaryIsInstance | 결과가 정적으로 항상 true 또는 false로 판단되는 'isinstance' 또는 'issubclass' 호출에 대한 진단입니다. 이러한 호출은 종종 프로그래밍 오류를 나타냅니다. |
reportUnusedCallResult | 결과가 소비되지 않고 None이 아닌 호출 표현식에 대한 진단입니다. |
reportUnusedClass | 비공식 이름(밑줄로 시작하는)으로 된 클래스가 접근되지 않는 경우에 대한 진단입니다. |
reportUnusedCoroutine | Coroutine을 반환하는 호출 표현식이 소비되지 않는 경우에 대한 진단입니다. |
reportUnusedFunction | 비공식 이름(밑줄로 시작하는)으로 된 함수 또는 메서드가 접 근되지 않는 경우에 대한 진단입니다. |
reportUnusedImport | 해당 파일 내에서 참조되지 않는 가져온 기호에 대한 진단입니다. |
reportUnusedVariable | 접근되지 않는 변수에 대한 진단입니다. |
reportUnsupportedDunderAll | __all__ 에 대해 수행된 지원되지 않는 작업에 대한 진단입니다. |
reportWildcardImportFromLibrary | 외부 라이브러리에서 와일드카드 가져오기에 대한 진단입니다. |
자동 완성 설정
설정 (python.autoComplete.) | 기본값 | 설명 | 참조 |
---|---|---|---|
extraPaths | [] | 자동 완성 데이터를 로드할 추가 패키지의 위치를 지정합니다. | 편집 |
미리 정의된 변수
Python 확장 설정은 미리 정의된 변수를 지원합니다. 일반 VS Code 설정과 유사하게 변수는 ${variableName} 구문을 사용합니다. 특히, 확장은 다음 변수를 지원합니다:
-
${cwd} - 시작 시 작업 실행기의 현재 작업 디렉토리
-
${workspaceFolder} - VS Code에서 열린 폴더의 경로
-
${workspaceRootFolderName} - 슬래시(/) 없이 VS Code에서 열린 폴더의 이름
-
${workspaceFolderBasename} - 슬래시(/) 없이 VS Code에서 열린 폴더의 이름
-
${file} - 현재 열린 파일
-
${relativeFile} -
workspaceFolder
에 상대적인 현재 열린 파일 -
${relativeFileDirname} -
workspaceFolder
에 상대적인 현재 열린 파일의 디렉토리 이름 -
${fileBasename} - 현재 열린 파일의 기본 이름
-
${fileBasenameNoExtension} - 파일 확장자가 없는 현재 열린 파일의 기본 이름
-
${fileDirname} - 현재 열린 파일의 디렉토리 이름
-
${fileExtname} - 현재 열린 파일의 확장자
-
${lineNumber} - 활성 파일에서 현재 선택된 줄 번호
-
${selectedText} - 활성 파일에서 현재 선택된 텍스트
-
${execPath} - 실행 중인 VS Code 실행 파일의 경로
미리 정의된 변수 및 예제 사용에 대한 추가 정보는 일반 VS Code 문서의 변수 참조를 참조하십시오.