본문 바로가기
Python

VSCode - Python 라이브러리 자동 완성 안될 때

by 올엠 2024. 3. 14.
반응형

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"



 

 

 

 

반응형