TIL 21 | 가상환경(Virtual Environments) 에 대한 정리

Yoonsik·2022년 5월 25일
0

Django

목록 보기
2/5

가상환경(Virtual Environments)이란?

가상환경(Virtual Environments)이란 독립적인 파이썬 실행환경을 의미한다.

이러한 가상환경은 각각 다른 환경에 영향을 미치기 않으며 각자 필요한 다른 종류와 버전의 패키지를 가질 수 있습니다.


가상환경을 사용하는 이유

가상환경을 사용하는 여러 이유 중, 대표적으로 2가지를 정리해 보겠습니다.

1. 패키지의 버전문제

우리는 파이썬을 설치할때 기본적으로 같이 딸려오는 패키지 매니저인 pip를 이용해서 필요한 패키지를 설치할 수 있습니다.

이렇게 pip로 설치한 패키지는 파이썬 설치 폴더(디렉터리) Lib/site-packages 안에 저장기되기 때문에(쉽게 말하면 전역으로 저장되기 때문에) 그 어떤 파이썬 스크립트라도 제약 없이 사용할 수 있습니다.
즉 pip로 설치한 패키지는 모든 파이썬 스크립트(소스파일)에서 사용할 수 있게 됩니다.

평소에는(단 하나의 프로젝트를 개발하는 경우) 이런 pip를 사용하는 방식이 문제가 되지 않지만, 여러개의 프로젝트를 개발하는 경우에는 패키지의 버전 문제가 발생합니다


[예시]
프로젝트 A에서는 패키지X 1.5를 사용해야 하고, 프로젝트 B에서는 패키지X 2.0을 사용해야 하는 경우

위에서 설명하였듯이, pip로 패키지를 설치한 경우, 파이썬 설치폴더 Lib/site-packages에 위의 그림과 같이 전역으로 설치가 됩니다.

결국 어떤 프로젝트든 상관없이 모든 파이썬 스크립트가 제약없이 사용하게 되는 것이죠.

이때 프로젝트 A는 패키지X 1.5 버전을 사용하기 때문에 문제가 되지 않지만 프로젝트 B는 패키지X 2.0을 사용해야 하는데 파이썬 설치 폴더에는 패키지X1.5가 설치되어 있기 때문에 이 부분에서 호환성 문제가 발생하게 됩니다.


위의 예시와 같은 문제를 해결하기 위해 가상환경을 사용할 수 있습니다.

가상 환경에서 pip로 패키지를 설치하면 가상 환경 폴더(디렉터리)의 Lib/site-packages 안에 패키지를 저장해줍니다.

즉, 프로젝트 A와 B 각각 가상 환경을 만들어서 프로젝트 A에는 패키지X 1.5를 설치하고, 프로젝트 B에는 패키지X 2.0을 설치할 수 있습니다.

이렇게 하면 각각 가상 환경에 설치된 패키지를 사용하게 되므로, 호환성 문제가 발생하지 않게 됩니다.


2. 각 프로젝트에 필요한 패키지(기능)만 설치하여 사용하기 위해

위에서 계속 말했듯이, 가상환경을 이용하면 다른 환경에 영향을 미치지 않는 독립적인 공간을 만들 수 있게 됩니다.

이러한 가상환경의 특성을 이용하면 프로젝트들을 별개의 가상환경으로 분리한 뒤,
각 프로젝트에 필요한 패키지만 설치하여 사용할 수 있습니다.


💻 정리

이처럼 가상환경(Virtual Environments)이란, 자신이 원하는 Python 환경을 구축하기 위해 필요한 모듈들만 담아 놓을 수 있는 환경이라고 생각하면 됩니다.

각 가상환경들은 독립적으로 관리되며, 프로젝트 마다 별개의 가상환경을 만들어놓고 사용하는 것이 권장됩니다


프로젝트 Yoonstagram 가상환경에 Django REST Framework 설치하기


위의 사진과 같이 주소 앞에 (venv)가 있으면 이는 '내가 지금 프로젝트의 가상환경 위에 있다 라는 의미' 입니다.

이 상태에서 pip install djangorestframework 를 입력하면 가상환경 폴더의 Lib/site-packages안에 해당 패키지를 설치합니다.

PyCharm 화면 왼쪽 상단의 File -> settings -> project:프로젝트 명 ->Python interpreter 에 들어가면 현재 프로젝트 가상환경에 설치된 패키지들을 볼 수 있습니다.

설치된 패키지에 마무스 커서를 올려보면 패키지의 주소를 볼 수 있습니다.
주소를 보면, C:\dev\Project\Yoonstagram\venv\Lib\site-packages 인데, 이를 통해 가상환경(venv)에 설치된 패키지는 Lib\site-packages 폴더에 저장된다는 것을 확인할 수 있습니다.
(가상환경에 저장된 패키지의 경로 : 프로젝트폴더\venv\Lib\site-packages)

그리고, + 버튼을 눌러, 직접 패키지 설치도 가능합니다. (명령어 X)


📌 참조 목록

47.11 가상환경 사용하기
제로부터 시작하는 인스타그램 - mychew_

profile
꾸준함의 힘

0개의 댓글