TIL - VENV : How to Use Virtual Environments with the Built-in venv Module

Seob·2020년 7월 13일
0

TIL

목록 보기
11/36

Why would we use a virtual environment?🤔

가상 환경이 필요한 이유는 특정 프로젝트를 위해 패키지를 설치할 공간이 필요하기 때문이다. 예를 들어 어느 한 프로젝트에서 파이썬 2.7 버전을 사용하고 다른 프로젝트에서는 3.x 버전을 사용한다면 문제가 발생한다. 또한 장고 같은 프레임워크는 파이썬 버전마다 다른 버전을 사용하기 때문에 가상 환경을 설정해서 각 프로젝트에 맞게 세팅해야 한다.

How do we use the built-in venv module?

이 모듈을 사용하기 위해서는 파이썬 버전 3.3 이상이 필요하고, 이 모듈은 파이썬에 내장되어 있기 때문에 따로 설치할 필요는 없다.

pip3 list

pip3 list 명령어를 터미널에서 입력하게 되면 현재 설치되어 있는 패키지가 표시된다.

이 패키지들은 가상환경이 아니라 현재 맥북에 설치된 패키지들이다.

Create a new virtual environment


python3 -m venv [원하는 이름] 을 입력하면 새로운 가상환경이 만들어진다.

test_env 폴더가 생성되었다.

Activate / Deactivate the virtual environment


source test_env/bin/activate를 입력해서 생성한 가상환경을 활성화했다.
터미널 상 경로 앞에 (test_env)를 보면 활성화된 것을 확인할 수 있고, which python 명령어를 입력해도 사용 중인 파이썬의 경로를 볼 수 있다.

파이썬의 버전은 새로운 가상환경을 생성할 때 설치되어 있는 파이썬의 버전으로 설치된다.

pip3 list 명령어를 입력해보면 다음과 같이 아무것도 설치되지 않은 상태인 것을 확인할 수 있다.

가상 환경에서 원래의 환경으로 돌아올 때는 deactivate명령어로 간단하게 빠져나올 수 있다.

(test_env)가 더이상 표시되지 않으며 패키지리스트에도 설치되어 있던 패키지가 다시 정상적으로 확인된다.

Delete the virtual environment

폴더에서 직접 삭제해도 되고 명령어로 삭제를 해도 된다.

rm -rf명령어로 삭제한 결과이다.

💡 정리

가상 환경은 한 특정 프로젝트를 위한 경우가 많으므로 다음과 같이 생성할 수 있다.

  • mkdir [생성할 폴더/프로젝트 이름] 을 입력해서 폴더를 새로 만들어준다.
  • python3 -m venv [생성한 폴더이름]/venv 를 입력하거나, cd명령어로 해당 폴더로 이동 후 venv라는 이름의 가상환경을 만든다.
  • venv는 관습적으로 쓰이는 이름이고 굳이 venv로 만들 필요는 없다.
  • source [생성한 폴더이름]/venv/bin/activate를 하거나 이미 해당 폴더라면, source venv/bin/activate 를 입력해서 생성한 가상환경을 활성화시킨다.

😲 주의할 점

  • 프로젝트 폴더 안에 있는 venv (혹은 지정한 가상환경 이름)폴더에 프로젝트 파일을 넣지 말아야 한다.
  • 가상환경은 언제든지 지우고 다시 설정할 수 있게 해야 하므로 프로젝트 파일을 넣게 되면 가상환경을 지울 때 같이 지워지는 불상사가 발생한다!
  • venv파일은 깃에 커밋하지 않는다.

패키지 정보 저장/불러오기

  • pip3 list 명령어를 입력한 결과 requests패키지가 설치되어있고 이 정보를 txt 파일로 저장한다.
  • pip freeze > [파일명].txt로 저장할 수 있다.
  • cat [파일명].txt로 텍스트 파일의 내용을 확인할 수 있다.

  • pip install -r [파일명].txt 명령어로 해당 패키지를 한 번에 설치할 수 있다.
  • 깃에 커밋할 때는 venv폴더를 커밋하지 않고 위와 같이 txt파일을 생성하여 커밋한다.

💡 가상환경을 생성할 때 원래 시스템에 있는 패키지를 모두 유지하려면?

  • pip -m venv venv --system-site-packages 명령어로 가상환경을 생성 후 활성화 시키면 원래 시스템에 있던 패키지를 새로운 가상환경에서도 사용할 수 있다.
  • pip list --local 명령어로 해당 가상환경상에만 설치된 패키지를 확인할 수도 있다.

참고한 영상

profile
Hello, world!

0개의 댓글