최근 수정 시각 : 2025-07-06 22:29:42

Pyright

<colbgcolor=#c3c38f,#c3c38f><colcolor=#10110a,#10110a> Pyright
파일:PyrightLarge.png
개발 Microsoft
출시일 2019년 03월 22일[1]
유형 정적 타입 분석기
사용 언어 TypeScript
공식 웹사이트 파일:홈페이지 아이콘.svg 파일:GitHub 아이콘.svg
1. 개요2. 특성3. 사용 방법4. 여담


1. 개요

#!syntax sh
# pyright 설치 (pip)
pip install pyright

# nodejs 바이너리를 함께 설치(권장사항)
pip install "pyright[nodejs]"

pyright는 Microsoft에서 개발한 Python 코드용 정적 타입 검사기다. 코드 실행 없이 타입을 분석하여 오류를 미리 찾아내고 코드의 안정성을 높이는 데 도움을 준다. PEP484를 포함하여 타입 힌트 관련 PEP를 지원하며, 빠른 분석 속도를 자랑한다. pyright는 CLI로 사용되거나, Visual Studio Codepylance[2]와 같이 IDE에 통합되어 사용된다.

2. 특성

  • 속도: 대규모 소스에서도 빠른 분석 속도를 제공한다. TypeScript 기반으로 작성되어 병렬 처리 등을 효율적으로 활용한다.
  • 개인화된 설정: 다양한 검사 규칙을 제공하며, pyrightconfig.json 파일 또는 pyproject.toml의 tool.pyright 섹션을 통해 프로젝트별로 설정할 수 있다.
  • 표준 타입 시스템 지원: Generics, Protocols, Overloads, Type Guards, TypedDict, Literal 등 Python의 현대적인 타입 시스템 기능 대부분 지원한다.
  • 타입 추론: 타입 힌트가 명시되지 않은 코드에 대해서도 일정 수준의 타입 추론을 수행하여 잠재적인 오류를 찾아낸다.

3. 사용 방법

pyright는 주로 다음 두 가지 방식으로 사용된다.

3.1. CLI

다음 명령어를 실행하여 타입 검사를 수행할 수 있다.
#!syntax sh
pyright

작업 디렉터리 내의 모든 Python 파일을 분석한다. 특정 파일이나 디렉터리를 대상으로 실행할 수도 있다.
#!syntax sh
# 특정 파일 검사
pyright src/script.py

# 특정 디렉터리 검사
pyright src/

3.2. IDE

pyright는 Language Server Protocol을 지원하여 IDE와 쉽게 통합될 수 있다. 가장 잘 알려진 예는 Microsoft가 개발한 Visual Studio Code의 pylance 확장이다.

다른 IDE나 편집기[3]에서도 LSP 플러그인을 통해 실시간 타입 검사, 자동 완성 등의 기능을 활용할 수 있다.

4. 여담

  • Python으로 작성된 Mypy보다 빠른 분석 속도를 보인다.
  • pyright의 유지관리자와 의견충돌로 인해 basedpyright라는 포크 프로젝트가 생겼다. pylance의 주요 기능[4]이 포함되었으며, pylance를 사용할 수 없는 VSCodium 등에서 주로 사용된다.
  • 유지관리자가 타입 힌트와 관련된 PEP토론에 자주 참여하며, 신규 PEP에 대한 지원이 상당히 빠르다.

[1] github 릴리즈 기준[2] Microsoft에서 Visual Studio Code 전용으로 개발한 플러그인. pyright에서 부족하다 여겨지는 기능을 보완한 것으로, pyright에는 의도적으로 개발하지 않는 기능들이다.[3] Neovim, Sublime Text[4] syntax highlighting, auto import 등