Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

파이썬을 공부하다보니 필요에 따라 라이브러리를 설치를 종종합니다. 파이썬을 처음 설치할 때 최신 버전이 무조건 좋은 줄 알고 설치했더니 오히려 필요한 라이브러리가 설치되지 않는 경우들이 있어 적잖이 당황하기도 했습니다. 

얼마 전에 온라인으로 특강(?)을 듣던 중에 Visual Studio Code와 Python을 가지고 가상환경(venv)을 만들어 사용할 수 있다는 이야기를 듣고 정말 충격을 받았습니다. 개발하는 코드에 따라 다른 버전의 파이썬, 다른 종류의 라이브러리들을 셋팅해서 사용할 수 있다니요!! 실습하는 내내 감탄을 했습니다.

오늘은 VSCode와 파이썬으로 가상환경을 만드는 방법을 정리해보겠습니다. (까먹지 않기 위해!!)

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

작업 영역 폴더 생성하고 VSCode로 열기

작업할 폴더를 생성하고 VSCode로 열어줍니다. VSCode를 실행하고 [파일] > [폴더 열기] 또는 단축키 Ctrl+K Ctrl+O를 이용하여 작업하기 위해 만든 폴더를 선택합니다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

콘솔창을 열고 가상환경 구성하기

Ctrl + `를 눌러 콘솔창(터미널)을 열어줍니다. 화면 하단에 터미널 창이 열렸습니다. 제 화면에는 powershell이 열렸는데요 저는 이걸 cmd로 바꿔주었습니다. [1:powershell]이라고 되어 있는 부분을 누르면 기본 쉘 선택 메뉴가 나옵니다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

기본 쉘 선택 항목을 눌러주면 화면 상단에 기본으로 설정할 터미널 셀을 선택하라고 합니다. 저는 [Command Prompt  C:\Windows\System32\cmd.exe] 를 선택하여 윈도우 기본 터미널을 선택하였습니다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

이 과정이 꼭 필요한 것인지는 잘 모르겠고... 전 그냥 윈도우 기본 커맨드 창이 익숙해서 이걸 골랐네요...

터미널을 닫았다가 다시 열어주면 기본 쉘이 powershell에서 cmd로 바뀌어 있는 것을 볼 수 있습니다. 가상환경을 구성하기 위해 명령어를 입력해보겠습니다.

python -m venv venv

venv가 두 개 적혀있는데 앞에 있는 venv는 가상환경을 만들어주기 위해 실행하는 명령어이고 두 번째 venv는 생성할 폴더 이름입니다. 다른 이름으로 바꿔도 상관없습니다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

명령어를 입력하고 잠시 기다리면 새로운 폴더와 파일들이 자동으로 생성된 것을 확인할 수 있습니다. 


인터프리터(Interpreter) 설정

이제 이 가상환경에서 사용할 파이썬 인터프리터를 설정해보겠습니다. F1 또는 Ctrl+Shift+P를 누르면 화면 상단에 창이 하나 생기는 데, 거기에 Python Select Interpreter를 입력해서 선택합니다. 자동완성 기능이 있어 앞 부분을 입력하면 해당 항목을 선택할 수 있습니다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

그러면 인터프리터 목록이 표시됩니다. 파이썬이 여러 버전이 설치되어 있다면 버전별 파이썬이 모두 나타납니다. 그리고 특이한 것이 하나 있는데 바로 앞서 생성한 venv가 표시되는 것을 볼 수 있습니다.

조금전에 가상환경을 설정할 때 만들어진 폴더 안에 파이썬 파일이 들어가 있는 것 같습니다. 이걸 선택해줍니다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

가상환경(venv) 터미널 확인하기

인터프리터 설정까지 마쳤습니다. 그런데 특별한 변화가 느껴지지 않습니다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

터미널 화면 오른쪽에 + 버튼을 눌러봅니다. 그러면 새 터미널이 실행되는데 아까랑 커맨드 라인이 달라졌습니다. 경로 앞에 (venv)가 추가되어 있습니다. 이제 가상환경 설정이 완료되었습니다. VSCode를 종료한 후에 다시 실행하시면 같은 방법으로 가상환경을 불러오실 수 있습니다.

이 상태로 현재 진행중인 프로젝트에 맞게 라이브러리들을 설치하여 활용하면 됩니다. 다른 프로젝트에서 다른 환경이 필요하다면 그 프로젝트에 맞게 가상환경을 설정해주면 되겠지요~

여러 프로젝트가 동시에 진행될 때, 각 프로젝트별로 라이브러리들을 설정할 수 있어서 아주 편리한 기능입니다.

python은 패키지를 설치하면 global 위치에 설치되기때문에 특정 버전의 패키지를 특정 프로젝트에서만 사용하려면 가상환경을 생성해줘야 한다. python -m venv {경로명/폴더명} 명령어를 써서 쉽게 생성할 수 있지만, vscode 환경에서 사용하려면 작업환경 설정값(.vscode/settings.json)을 설정해줘야하는 번거로움이 있다.

(설정해도 제대로 안되기도 한다!)

뻘짓하다가 쉽게하는 방법이 있어 기록하기로 했다. 

1. 작업영역 폴더 생성

예시로 venv-test 폴더 생성했다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi
Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

3. 콘솔창 열기

Ctrl + ` 키를 눌러 콘솔창(터미널)을 연다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

3. 가상환경 구성

python -m venv 명령을 실행한다.

python -m venv ./venv
Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

4. Interpreter 설정

F1 키를 누른 후, python Select Interpreter 를 입력한다. 그 후 해당 항목을 클릭한다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

5. Interpreter 선택

선택하면 Interpreter 목록이 표시되는데, 앞서 생성한 venv가 표시되는 것을 확인할 수 있다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

6. 코드 파일 생성

예시 스크린샷에서처럼 코드파일(main.py)을 생성한 뒤, vscode에서 열면 스크린샷과 같이 "Linter pylint is not installed." 라는 메시지와 함께 pylint를 설치할 수 있도록 메시지 창이 표시된다. Install 버튼을 눌러 설치를 진행한다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

7. venv 터미널 확인

전 단계에서 Install 버튼을 누르면 새로운 python 터미널이 생성됨과 동시에 pylint 설치가 진행된다.

설치가 완료된 후, 별도의 activate 과정없이 해당 터미널에서 가상환경에 필요한 패키지를 설치하면 된다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

추가적으로, vscode를 다시 열면 가상환경이 잡히지 않은 터미널(cmd)이 열려 있게되지만, + 버튼을 누르면 생성되는 터미널은 가상환경으로 자동 설정된다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi

일일히 설정했을때 발생했던 debuging을 사용할 수 없는 문제도 발생하지 않는다.

Vs Code 가상환경 만들기 - Vs Code gasanghwangyeong mandeulgi
잘 잡히는 breakpoint