TIL 230105 파이썬

강지훈·2023년 1월 5일
0

가상 환경의 개념에 대해서...

출처: https://tibetsandfox.tistory.com/34

가상 환경 (Virtual Environments)이란?

각각의 가상 환경은 다른 호나경에 영향을 미치지 않으며 각자 다른 종류와 버전의 패키지를 가질 수 있다.

<가상 환경이 왜 필요한가?>

우리는 파이썬을 설치할때 기본적으로 같이 딸려오는 패키지 매니저인 pip를 이용해서 필요한 패키지를 설치할 수 있습니다. 이렇게 pip로 설치한 패키지는 전역으로 설치되기 때문에 그 어떤 파이썬 스크립트라도 제약 없이 사용할 수 있습니다.

예를 들어 pip로 Numpy 모듈을 설치했다면 모든 파이썬 스크립트에서 Numpy 모듈을 사용할 수 있게 됩니다.

만약 프로젝트를 단 하나만 진행한다면 전역으로 패키지를 설치한다 한들 크게 문제될 것은 없습니다.

하지만 프로젝트가 여러개일 경우 문제가 발생할 수 있습니다. 예시를 하나 말씀드리겠습니다.

  1. 여러분은 pip로 Django 3.0 버전을 전역으로 설치한 다음 이를 이용하여 웹 서비스를 하나 만들었습니다. 생각보다 만족스러운 서비스였기에 여러분은 계속해서 유지보수 하기로 마음먹은 상황입니다.

  2. 시간이 흘러 Django 3.1 버전이 배포되었고, 여러분은 3.1 버전으로 장고를 업데이트 합니다. 그리고 새로운 프로젝트를 시작하게 됩니다.

  3. 그런데 맙소사, 전에 만든 프로젝트가 갑자기 동작을 안합니다. 알고 보니 Django 3.0 버전과 3.1 버전은 호환이 되지 않는다고 합니다.

  4. 새로운 프로젝트도 진척이 꽤 된 상황. 여러분은 진퇴양난에 빠져버렸습니다.

(단순한 예시입니다! 실제로 Django 3.0 버전과 3.1 버전이 호환이 안되는 것은 아닙니다.)

<가상 환경의 활용과 모듈>
가상 환경은 상술한 문제를 해결해줌

각자 독립된 개발 환경을 제공해 주기 때문에 어떤 프로젝트는 구버전 패키지를, 어떤 프로젝트는 최신버전 패키지를 사용하는 식의 개발이 가능해지는 것

참고로, 파이썬 인터프리터 버전도 가상 환경에 포함됨
따라서 가상 환경에 따라 파이썬 자체의 버전도 분리가 가능

어떤 가상 환경을 실행중일 때 파이썬 인터프리터를 실행하면 가상 환경에 설치된 파이썬 인터프리터를 실행

모듈은 대표적으로 venv, virtualenv, pipenv , conda 가 있다.

profile
never stop

0개의 댓글