VS Code에서 Python 코드 서식 지정
서식 지정은 소스 코드를 사람이 더 쉽게 읽을 수 있도록 합니다. 줄 간격, 들여쓰기, 연산자 주위의 공백과 같은 특정 규칙 및 관례를 강제함으로써 코드가 시각적으로 더 잘 구성되고 이해하기 쉬워집니다. autopep8 페이지에서 예를 볼 수 있습니다. 코드가 실제로 작동하는 방식에는 영향을 미치지 않습니다.
린팅은 일반적인 구문, 스타일, 기능 오류 및 비표준 프로그래밍 관행을 분석하여 오류를 방지하는 데 도움이 됩니다. 서식 지정과 린팅 사이에는 약간의 중복이 있지만 두 기능은 상호 보완적입니다.
서식 지정 도구 선택
선택한 서식 지정 도구에 대한 확장 프로그램을 VS Code Marketplace에서 검색하십시오.
Microsoft에서 다음 서식 지정 확장 프로그램을 게시합니다.
| 서식 지정 도구 | 확장 프로그램 |
|---|---|
| autopep8 | https://marketplace.visualstudio.com/items?itemName=ms-python.autopep8 |
| Black formatter | https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter |
커뮤니티에서 제공하는 서식 지정 도구 확장 프로그램
| 서식 지정 도구 | 확장 프로그램 |
|---|---|
| Ruff | https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff |
| yapf | https://marketplace.visualstudio.com/items?itemName=eeyore.yapf |
또한, 아래는 import 정렬을 지원하는 서식 지정 도구 확장 프로그램입니다.
| 서식 지정 도구 | 확장 프로그램 |
|---|---|
| Ruff | https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff |
| isort | https://marketplace.visualstudio.com/items?itemName=ms-python.isort |
참고: 위의 표나 Marketplace에서 원하는 서식 지정 도구를 찾을 수 없는 경우, 확장 프로그램을 통해 지원을 추가할 수 있습니다. Python Extension Template을 사용하여 VS Code에 새로운 Python 도구를 통합할 수 있습니다.
기본 서식 지정 도구 설정
서식 지정 도구 확장 프로그램을 설치한 후 다음 단계에 따라 VS Code에서 Python 파일의 기본 서식 지정 도구로 선택할 수 있습니다.
- VS Code에서 Python 파일을 엽니다.
- 편집기를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 표시합니다.
- 문서 서식 지정을 선택합니다.
- 드롭다운 메뉴에서 기본 서식 지정 도구 구성을 선택합니다.
- 목록에서 원하는 서식 지정 도구 확장 프로그램을 선택합니다.
또는 사용자 settings.json 파일의 [python] 범위 아래에 "editor.defaultFormatter"를 설정하여 모든 Python 파일에 대한 기본 서식 지정 도구로 설정할 수 있습니다. 환경 설정: 사용자 설정 열기(JSON) 명령으로 settings.json을 열 수 있습니다.
예를 들어, Black Formatter를 기본 서식 지정 도구로 설정하려면 사용자 settings.json 파일에 다음 설정을 추가합니다.
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
}
서식 지정 도구 확장 프로그램을 import 정렬 도구로 설정하려면 사용자 settings.json 파일 또는 작업 영역 settings.json 파일의 [python] 범위 아래에 있는 "editor.codeActionsOnSave"에서 기본 설정을 지정할 수 있습니다. 환경 설정: 사용자 설정 열기(JSON) 및 환경 설정: 작업 영역 설정 열기(JSON) 명령을 사용하여 해당 settings.json 파일을 열 수 있습니다. 이렇게 하면 모든 Python 파일에 대해 저장 시 import 정렬이 활성화됩니다.
예를 들어, Ruff를 원하는 import 정렬 도구로 설정하려면 사용자 settings.json 또는 작업 영역 settings.json 파일에 다음 설정을 추가할 수 있습니다.
{
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports.ruff": "explicit"
}
}
}
코드 서식 지정
편집기를 마우스 오른쪽 버튼으로 클릭하고 문서 서식 지정을 선택하거나 ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) 키보드 단축키를 사용하여 코드를 서식 지정할 수 있습니다.
코드의 저장 시 서식 지정을 활성화하려면 사용자 settings.json 파일에 다음 설정을 추가할 수도 있습니다.
"[python]": {
"editor.formatOnSave": true
}
일반 서식 지정 설정
대부분의 서식 지정 도구 확장 프로그램에서 지원하는 다음 설정에 대한 자세한 내용은 각 서식 지정 도구 확장 프로그램의 README를 참조하십시오.
| 설정 접미사 |
기본값 | 설명 |
|---|---|---|
| args | [] |
서식 지정 도구에 전달할 인수입니다. 각 인수는 배열에서 별도의 문자열로 전달해야 합니다. 예를 들어, black-formatter.args: ["--line-length", "100"] |
| importStrategy | useBundled |
useBundled로 설정하면 확장 프로그램이 함께 제공되는 도구 버전을 사용합니다. fromEnvironment로 설정하면 먼저 선택한 Python 환경에서 로드하려고 시도하고, 그렇지 않으면 번들 버전을 사용합니다. |
| path | "" |
서식 지정을 위해 사용될 서식 지정기 이진 파일의 경로입니다. **참고:** 이 옵션을 사용하면 서식 지정 속도가 느려질 수 있습니다. |
| interpreter | [] |
Python 실행 파일의 경로로 설정하면 확장 프로그램이 해당 경로를 사용하여 서식 지정기 서버와 해당 하위 프로세스를 시작합니다. |
| showNotifications | 끔 |
확장 프로그램에 의해 알림이 표시될 시기를 제어합니다. 지원되는 값은 off, always, onError, onWarning입니다. |
서식 지정 문제 해결
서식 지정에 실패하면 다음 가능한 원인을 확인하십시오.
| 문제 | 해결책 |
|---|---|
| Python 파일에 여러 서식 지정 도구가 있습니다. | 위의 섹션의 지침에 따라 기본 서식 지정 도구를 설정하십시오. |
| "문서 서식 지정" 옵션이 없습니다. | 컨텍스트 메뉴에 이 옵션이 표시되지 않으면 VS Code에 서식 지정 도구 확장 프로그램이 설치되지 않았거나 사용 설정되지 않은 것입니다. Python 서식 지정 도구 확장 프로그램을 설치하는 방법은 서식 지정 도구 선택 섹션을 참조하십시오. |
| 서식 지정 도구에 대한 사용자 지정 인수가 올바르지 않습니다. | 적절한 <formatter>.path 설정에 인수가 포함되어 있지 않고 <formatter>.args에 개별 최상위 인수 요소 목록이 포함되어 있는지 확인하십시오. |
| "사용되지 않는 린팅 또는 서식 지정 설정이 있습니다"라는 알림이 표시됩니다. | 이 알림이 표시되면 VS Code에 python.linting 또는 python.formatting과 같은 설정이 있음을 의미합니다. 린팅 및 서식 지정 지원이 도구 확장 프로그램으로 마이그레이션되었기 때문에 이러한 설정은 Python 확장 프로그램에서 더 이상 지원되지 않습니다. 린팅 및 서식 지정 지원이 도구 확장 프로그램으로 마이그레이션되었습니다. |
| Black Formatter를 사용할 때 **선택 영역 서식 지정** 명령이 실패합니다. | black은 코드 섹션의 서식 지정을 지원하지 않습니다. 이 제한 사항을 해결하려면 붙여넣기 시 서식 지정을 비활성화하고 다음 설정을 사용하여 전체 파일을 서식 지정하도록 formatOnSave를 설정할 수 있습니다: "[python]": {"editor.formatOnPaste": false, "editor.formatOnSaveMode": "file"}. |
| 서식 지정 도구 확장 프로그램이 설치되어 있음에도 서식 지정이 작동하지 않습니다. | 코드의 구문 문제, 지원되지 않는 Python 버전 사용, 서식 지정 도구 구성 오류 등 다양한 이유로 서식 지정이 실패할 수 있습니다. 서식 지정 도구 확장 프로그램의 출력 채널을 확인하여 서식 지정 도구가 실패한 이유를 이해하십시오(명령 팔레트에서 **출력: 출력에 집중** 명령을 실행한 다음 서식 지정 도구 확장 프로그램 채널 선택). |
참고: 위에 나열된 원하는 서식 지정 도구를 찾을 수 없는 경우, 확장 프로그램을 통해 지원을 추가할 수 있습니다. Python Extension Template을 사용하면 VS Code에 원하는 Python 도구를 쉽게 통합할 수 있습니다.
다음 단계
- 디버깅 - 로컬 및 원격 Python 디버깅 방법을 알아봅니다.
- 테스트 - 테스트 환경을 구성하고 테스트를 검색, 실행 및 디버그합니다.
- 기본 편집 - 강력한 VS Code 편집기에 대해 알아보세요.
- 코드 탐색 - 소스 코드를 빠르게 이동합니다.
- Python Extension Template - VS Code에 원하는 린터를 통합하는 확장 프로그램을 만듭니다.