venv(가상환경) 사용 이유
파이썬을 다루다보면 다양한 패키지들을 사용하게 된다.
그렇게, pip3 install {패키지명}을 무분별하게 사용하다보면 로컬에 있는 다른 프로젝트 간 패키지 버전 충돌 혹은 패키지(라이브러리)간 의존성 문제가 발생하기도 한다.
이를 해결하기 위해 ‘venv’라는 파이썬 모듈로 패키지 환경 분리가 가능하며, 작업환경이 바뀌더라도 필요한 패키지들을 동일한 버전으로 설치해 작업할 수도 있다.
현재 설치되어있는 파이썬 패키지 목록 확인
pip list
가상환경 생성
python -m venv myenv
venv 라는 모듈을 사용하겠다는 의미
myenv는 사용자 임의의 가상환경 별칭
가상환경 활성화
source myenv/bin/activate
이렇게 가상환경을 활성화한 후, 다시 패키지 목록을 확인(pip list)해보면 해당 환경에는 아무런 패키지가 없는 깨끗한 환경임을 확인할 수 있다.
VS Code에서 가상환경 사용하기
위의 명령으로인해 가상환경이 “활성화”되긴 했지만, 이것은 터미널에서만 준비가 된 상태. (VS Code 터미널 맨 앞에 가상환경 명이 표시되더라도 터미널 명령이 아닌 VS Code 자체의 인터프리터는 아직 가상환경의 파이썬버전 및 인터프리터가 동일하지 않은 상태)
즉, VS Code도 가상환경과 동일한 환경(버전 및 패키지)으로 설정 되어야한다.
방법
VS Code 하단의 파이썬 버전정보 클릭 → 생성한 가상환경 이름 클릭
혹은
ctrl + shift + p(win) /cmd + shift + p(mac) 눌렀을때 표시되는 input box에서 “python select Interpreter” 라고 입력 후 위에서 생성한 가상환경이름이 포함된 인터프리터 선택VS Code 환경, 가상환경 동기화 완료
이것은 앞서 설명한 가상환경 활성화 작업과의 순서는 상관없지만 별개로 꼭 필요한 작업.
하단의 버전정보를 클릭하여 설정하는 방법과는 별개로 가상환경 생성 직후 뜨는 알림창을 통해 바로 가상환경과 동일하게 설정할 수 있다.

파이썬 패키지 설치
pip3 install {패키지명}
가상환경에서 설치된 패키지 목록 ‘백업’ 혹은 ‘다른 가상환경에서 재사용’ 방법
pip3 freeze: 설치된 패키지 명과 버전정보가 아래와 같이 출력

위에서 출력된 결과를 파일에 담기
pip3 freeze > requirements.txt이렇게 생성된 파일(
requirements.txt)을 통해 다른 가상환경에서 동일한 패키지 목록 다운로드pip3 install -r requirements.txt
가상환경 비활성화
deactivate
가상환경 삭제
생성된 가상환경 폴더(여기서는 myenv)를 지워주기만 하면 끝. 우클릭하여 delete 혹은 rm -rf myenv
처음에 가상환경을 설치할 때는 아무 패키지가 없는 ‘백지’와 같다. 가상환경을 생성할 때 로컬에 있는 패키지 정보를 그대로 가상환경까지 가져가고 싶을때의 방법은 다음과 같다
시스템 내 패키지 목록과 동일한 가상환경 생성
python3 -m venv myenv --system-site-packages
이후 pip3 list 를 하게되면 가상환경에 설치된 패키지 목록이 로컬시스템 패키지와 동일한 것을 확인할 수 있다.
가상환경에만 따로 설치되어있는 패키지목록을 확인하는 방법
pip3 list --local