Django에서 자동완성이 되지 않는 상황에서 어떻게 해결할 수 있을까 정리해본다.
보통 이런 상황은 가상 환경이거나, Docker 환경등에서 발생할 가능성이 높다.
이유는 현재 VS Code에서 바라보는 Python 실행 환경이 django 라이브러리를 인식할 수 없는 상태이다.
즉 다중 환경으로 개발을 하는데 현재 VSCode의 환경에서는 사용이 불가능 하다는 얘기이다.
따라서 해결 방법으로는 2가지가 있다.
1. 현재 환경에 Django 환경과 동일하게 라이브러리를 설치해준다.
2. Django 를 개발하는 환경의 Python 경로를 입력한다.
첫번째 방법은 개발 환경마다 따로 구성할 필요가 없도록 구성하여 개발 편의성은 있지만, 라이브러리의 기능적 문제나 환경 문제등에 민감하지 않기 때문에 문제가 있을 수 있고, 두번째는 개발 환경마다 참조하는 Python 인터프린터 변경하여 설정하는 건 조금 번거롭지만, 라이브러리의 문제를 개발시 동일하게 설정하므로 주요 프로젝트를 개발할 때에는 두번째 방안이 추천한다.
1. 현재 환경에 Django 환경과 동일하게 라이브러리를 설치
Django 환경을 구성할 때 Django 라이브러리만 설치하면 되지만, 실제 다른 라이브러리도 동일하게 문제가 발생하기 때문에 라이브러리 설치를 위해 만들어 놓은 requirements.txt를 설치한다.
python3 -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -r ./requirements.txt
필자의 환경 구성 파일 이다.
Django>=4.1,<4.3
djangorestframework>=3.12.4,<3.13
drf-spectacular>=0.23,<0.25
pytz
설치후 오류가 난 파일을 저장하여 확인해보면, 참조 오류가 사라진 것을 알 수 있다.
2. Django 를 개발하는 환경의 Python 경로를 입력한다.
이 방식이 정식인 방법이다.
VSCode는 멀티 환경을 지원하기 때문에 프로젝트별로 Python 인터프린터 변경할 수 있다.
가장 쉽게는 GUI적으로 가능하다.
VSCode 하단에 버전 정보부분을 클릭하면 현재 선택된 인터프린터를 변경할 수 있다.
현재 프로젝트에 맞는 Python 인터프린터를 선택한다.
만약 프로젝트 세팅을 하고자 한다면, .vscode/settings.json을 만들고 python.pipenvPath 를 설정하여도 동일한 효과를 볼 수 있다.
"python.pipenvPath": "pipenv"
'Python' 카테고리의 다른 글
Python - Session, HTTPAdapter 효율적인 ConnectionPool 관리 (0) | 2024.03.14 |
---|---|
Python - 왜 좋을까?, 해야 하는 이유 (0) | 2024.03.14 |
Python/Django - 리스트 마지막 콤마?! (0) | 2024.03.14 |
Django - django-admin을 찾지 못할때 (0) | 2024.03.14 |
Python - Regex 개인정보(주민등록번호,전화번호,휴대폰번호,이메일) 패턴 (0) | 2024.03.11 |