[vscode] 가상환경(venv) 활용방법
가상환경(virtual environment) 이란?
같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경입니다.
python은 패키지를 설치하면 global 위치에 설치되기때문에 특정 버전의 패키지를 특정 프로젝트에서만 사용하려면 가상환경을 생성해줘야 한다.
예를 들어, A 프로그램에서는 a패키지 1.3, b는 1.3.2, c는 2.3.0 버전을 사용해야만 잘 돌아가는데, 이게 최신버전이 아니다보니 global 환경에 영향을 안끼쳤으면 좋겠다. 할때 가상환경(venv)를 사용한다. 이 venv에서는 내가 원하는 버전의 패키지를 설치해도 global 환경에는 영향이 없다.
가상환경 생성 방법
0. git bash 설치
먼저 윈도우 환경이라면 git bash를 설치해줍니다.
위 링크에서 다운로드를 받으면 됩니다.
1. 작업영역 폴더 생성
예시로 venv-test 폴더 생성했다.
2. 작업영역 폴더 vscode로 열기
3. 콘솔창 열기
Ctrl + ` 키를 눌러 콘솔창(터미널)을 연다.
3. 가상환경 구성
python -m venv 명령을 실행한다. (venv 생성 명령어, python -m은 파이썬을 실행하는 명령어임. python -m main = main 파일 실행)
python -m venv ./venv
4. Interpreter 설정
F1 키를 누른 후, python Select Interpreter 를 입력한다. 그 후 해당 항목을 클릭한다.
5. Interpreter 선택
선택하면 Interpreter 목록이 표시되는데, 앞서 생성한 venv가 표시되는 것을 확인할 수 있다.
6. 코드 파일 생성
예시 스크린샷에서처럼 코드파일(main.py)을 생성한 뒤, vscode에서 열면 스크린샷과 같이 "Linter pylint is not installed." 라는 메시지와 함께 pylint를 설치할 수 있도록 메시지 창이 표시된다. Install 버튼을 눌러 설치를 진행한다.
7. venv 터미널 확인
전 단계에서 Install 버튼을 누르면 새로운 python 터미널이 생성됨과 동시에 pylint 설치가 진행된다.
설치가 완료된 후, 별도의 activate 과정없이 해당 터미널에서 가상환경에 필요한 패키지를 설치하면 된다.
추가적으로, vscode를 다시 열면 가상환경이 잡히지 않은 터미널(cmd)이 열려 있게되지만, + 버튼을 누르면 생성되는 터미널은 가상환경으로 자동 설정된다.
일일히 설정했을때 발생했던 debuging을 사용할 수 없는 문제도 발생하지 않는다.
잘 잡히는 breakpoint
맥&리눅스)
source ./venv/bin/activate
맥과 리눅스 환경에서는 위 코드를 실행 시켜주면 됩니다.
윈도우 콘솔창 활용)
source ./venv/Scripts/activate
콘솔창 경로를 꼭 확인한 후에 실행하기!
자 이제 제가 헤맸었던 부분인데요.
modulenotfounderror:
위의 과정을 거치지 않고서
pip install
위 명령어를 써주면 설치된 모듈을 나열을 해주는데
이는 global에 설치되어 있는 모듈을 보여주는 것입니다.
만약 venv를 활성화하지 않고서 'pip install'을 해준다면 global에 설치를 하고
가상환경에는 설치가 되지 않는 아주아주 치명적인 오류가 발생합니다.(나에게 있어서ㅎㅎ;;)
아무튼 위에서 거쳤던 과정을 잘 거친 후
저는 vscode를 사용하기 때문에
실행을 시켜준 후 작업을 했던 폴더를 열어줍니다.
여기에서 ctrl+J 로 콘솔창을 열어줍니다.
터미널 창에서 powershell을 위에서 설치했던 bash혹은 cmd로 바꿔주어야 합니다.
'+'옆에 있는 '아래방향 화살표'를 눌러주어서
Git bash나 Command Prompt를 눌러줍니다.
이왕 설치를 해준 bash로 한 번 해보면
앞에 (venv) 라고 써져 있는 것을 알 수 있습니다!
이것은 다른 말로 가상환경 활성화 완료 라고 합니다ㅎㅎ
pip list를 한번 입력을 해주면
다음과 같이 global에 설치 되어 있는 것이 아닌
venv내부에 있는 것들만 호출이 되는 것을 알 수 있습니다!!
'IT > 파이썬 & vscode' 카테고리의 다른 글
[vscode] C/C++ 디버거 툴 설치 및 컴파일 방법 (2) | 2023.02.19 |
---|---|
[vscode] C/C++ 여러 파일 한번에 컴파일하기 (0) | 2023.02.19 |
[vscode] 탭 간격 영구 설정, 공백 표시, 탭키 공백으로 인식 해제 방법 (1) | 2022.12.09 |
[vscode] 소스코드 한번에 예쁘게 정리하기 (0) | 2022.11.11 |
[파이썬] exe파일 중복실행 방지 방법 (0) | 2022.09.09 |