파이썬을 다루다보면 다양한 패키지들을 사용하게 된다.
그렇게 pip3 install {패키지명}을 무분별하게 사용하다보면, 로컬에 있는 다른 프로젝트 간 패키지 버전 충돌을 걱정할 수 밖에 없어진다.

이 때, ‘venv’라는 파이썬 모듈을 통해 패키지 환경을 분리할 수 있다.

현재 설치되어있는 패키지 목록 확인

pip3 list

가상환경 생성

python -m venv myenv

venv 라는 모듈을 사용하겠다는 의미

myenv는 사용자 임의의 가상환경 별칭

가상환경 활성화

source myenv/bin/activate

다시 패키지 목록 확인(pip list)하게되면 해당 환경에는 아무런 패키지가 없는 깨끗한 환경임을 확인할 수 있다.

VS Code에서 가상환경 사용하기

위의 명령으로인해 가상환경이 “활성화”되긴 했지만, 이것은 터미널에서만 준비가 된 상태. (VS Code 터미널 맨 앞에 가상환경 명이 표시되더라도 터미널 명령이 아닌 VS Code 자체의 인터프리터는 아직 가상환경의 파이썬버전 및 인터프리터가 동일하지 않은 상태)

즉, VS Code도 가상환경과 동일한 환경(버전 및 패키지)으로 설정 되어야하는데, 이때의 방법이 바로

  1. VS Code 하단의 파이썬 버전정보 클릭 → 생성한 가상환경 이름 클릭
  2. 혹은 ctrl + shift + p 를 눌렀을때 표시되는 input box에서 “python select Interpreter” 라고 입력 후 인터프리터 선택

VS Code 환경, 가상환경 동기화 완료

이것은 앞서 설명한 가상환경 활성화 작업과의 순서는 상관없지만 별개로 꼭 필요한 작업

하단의 버전정보를 클릭하여 설정하는 방법과는 별개로 가상환경 생성 직후 뜨는 알림창을 통해 바로 가상환경과 동일하게 설정할 수 있다.

image-20220807212929744

파이썬 패키지 설치

pip3 install {패키지명}

가상환경에서 설치된 패키지 목록 ‘백업’ 혹은 ‘다른 가상환경에서 재사용’ 방법

  1. pip3 freeze 설치된 패키지 명과 버전정보가 아래와 같이 출력됨

    image-20220807214429266

  2. 위에서 출력된 결과를 파일에 담기 pip3 freeze > requirements.txt

  3. 이렇게 생성된 파일(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로 확인할 수 있다.

Leave a comment