Python 프로젝트에서 사용되지 않는 함수, 클래스, 변수, import와 도달 불가능한 코드를 찾는 정적 분석 도구입니다.
pylint-dev/pylint-django
Django 모델, 폼, 뷰, 마이그레이션을 이해하도록 Pylint를 확장해 Django 코드의 오탐을 줄이는 플러그인입니다.
- 스타
- 623
- 포크
- 124
- 열린 이슈
- 76
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
pylint-django는 Python 정적 분석 도구인 Pylint용 플러그인입니다. 기본 설정의 Pylint는 Django의 런타임 마법을 이해하지 못해 Model.objects나 Views.request 같은 속성, 그리고 해석할 수 없는 ForeignKey 필드에 경고를 표시합니다. 이 플러그인은 Django에 맞는 추론 기능을 추가해 이런 오탐을 없애고 모델 및 폼 필드의 속성 타입을 파악합니다.
이 플러그인은 Pylint의 --load-plugins 옵션으로 불러옵니다. 정확한 분석을 위해서는 Django 설정 모듈이 필요하며, DJANGO_SETTINGS_MODULE 환경 변수나 --django-settings-module 플래그로 전달해야 설치된 앱과 문자열로 참조된 모델을 확인할 수 있습니다. 설정이 없으면 기본값으로 대체되며 추론의 정확도가 떨어집니다. 또한 Prospector 린터에 포함되어 있으며 Django가 감지되면 자동으로 활성화됩니다.
선택 사항인 마이그레이션 검사기는 기본값이 있는 새 필드(대규모 테이블에서 속도가 느려질 수 있음)와 역방향 callable이 없는 RunPython 작업을 표시합니다. 기본적으로 비활성화되어 있으며 명시적으로 활성화해야 합니다.
핵심 기능
- 01Model.objects 및 Views.request와 같은 Django 생성 속성에 대한 오탐 경고를 억제합니다.
- 02ForeignKey 속성을 해석해 'has no member' 오류가 발생하지 않도록 합니다.
- 03Model 및 Form 필드 속성의 타입을 추론합니다.
- 04Model.__unicode__ 메서드를 검증하고 위험한 ModelForm exclude 사용을 표시합니다.
- 05선택적으로 마이그레이션에서 위험한 필드 기본값과 되돌릴 수 없는 RunPython 작업을 검사합니다.
활용 사례
- Django 프로젝트의 CI에서 오탐에 묻히지 않고 Pylint 또는 Prospector를 실행합니다.
- 대규모 코드베이스에서 Django 모델 및 폼의 정적 분석 정확도를 높입니다.
- 배포 전에 마이그레이션 파일의 성능 또는 되돌리기 가능성 문제를 검토합니다.
빠른 시작
- 1
PyPI에서 플러그인을 설치합니다
pip install pylint-django - 2
플러그인과 Django 설정 모듈을 불러온 상태로 pylint를 실행합니다
pylint --load-plugins pylint_django --django-settings-module=your.app.settings [..other options..] <path_to_your_sources>
사용 전 알아둘 점
- 카피레프트 라이선스인 GPL-2.0으로 제공되며, 상업적 이용이 일부 제한될 수 있습니다.
- Django는 기본으로 설치되지 않으므로 별도로 설정하거나 with-django extra를 통해 설치해야 합니다.
- Django 설정 모듈을 구성했을 때 가장 잘 작동합니다. 설정 모듈이 없으면 분석 정확도가 떨어집니다.
토픽
자주 묻는 질문
- pylint-django은(는) 무엇인가요?
- Django 모델, 폼, 뷰, 마이그레이션을 이해하도록 Pylint를 확장해 Django 코드의 오탐을 줄이는 플러그인입니다. pylint-django는 Python 정적 분석 도구인 Pylint용 플러그인입니다. 기본 설정의 Pylint는 Django의 런타임 마법을 이해하지 못해 Model.objects나 Views.request 같은 속성, 그리고 해석할 수 없는 ForeignKey 필드에 경고를 표시합니다. 이 플러그인은 Django에 맞는 추론 기능을 추가해 이런 오탐을 없애고 모델 및 폼 필드의 속성 타입을 파악합니다.
- pylint-django은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pylint-django은(는) GPL-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pylint-django은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pylint-django의 마지막 커밋은 2026년 11월 3일입니다.
- pylint-django은(는) 어디에 사용할 수 있나요?
- Django 프로젝트의 CI에서 오탐에 묻히지 않고 Pylint 또는 Prospector를 실행합니다. 대규모 코드베이스에서 Django 모델 및 폼의 정적 분석 정확도를 높입니다. 배포 전에 마이그레이션 파일의 성능 또는 되돌리기 가능성 문제를 검토합니다.
- pylint-django는 어떻게 설치하나요?
- PyPI에서 플러그인을 설치합니다: pip install pylint-django 플러그인과 Django 설정 모듈을 불러온 상태로 pylint를 실행합니다: pylint --load-plugins pylint_django --django-settings-module=your.app.settings [..other options..] <path_to_your_sources>
- pylint-django은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pylint-dev/pylint-django
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
프로젝트별로 설정할 수 있는 200개 이상의 규칙으로 Swift 스타일과 규칙을 검사하는 린터입니다.
프로젝트의 버그, 취약점, 유지보수 문제를 검사하고 CI 파이프라인에 Quality Gates를 적용하는 자체 호스팅 코드 품질·보안 플랫폼입니다.
다른 PHP 버전에서 문제가 되는 기능이나 함수를 사용하는 코드를 감지하는 PHP_CodeSniffer 규칙 모음입니다.
PHP 도구를 로컬에 설치하지 않고 실행할 수 있도록 다양한 정적 분석·테스트·코드 품질 도구를 묶은 Docker 이미지입니다.
Jupyter Notebook에서 ruff, isort, black, mypy, flake8 같은 Python 린터와 포매터를 바로 실행하는 CLI 도구입니다.